diff options
| -rw-r--r-- | src/sdp.c | 13 | 
1 files changed, 7 insertions, 6 deletions
| @@ -1530,13 +1530,14 @@ int sdp_get_uuidseq_attr(const sdp_record_t *rec, uint16_t attr, sdp_list_t **se  	if (sdpdata && sdpdata->dtd >= SDP_SEQ8 && sdpdata->dtd <= SDP_SEQ32) {  		sdp_data_t *d;  		for (d = sdpdata->val.dataseq; d; d = d->next) { -			uuid_t *u = malloc(sizeof(uuid_t)); -			memset((char *)u, 0, sizeof(uuid_t)); -			if (d->dtd >= SDP_UUID16 && d->dtd <= SDP_UUID128) { -			  	*u = d->val.uuid; -			  	*seqp = sdp_list_append(*seqp, u); -			} else +			uuid_t *u; +			if (d->dtd < SDP_UUID16 || d->dtd > SDP_UUID128)  				goto fail; + +			u = malloc(sizeof(uuid_t)); +			memset(u, 0, sizeof(uuid_t)); +			*u = d->val.uuid; +			*seqp = sdp_list_append(*seqp, u);  		}  		return 0;  	} | 
