diff options
| author | Marcel Holtmann <marcel@holtmann.org> | 2006-02-03 03:39:33 +0000 | 
|---|---|---|
| committer | Marcel Holtmann <marcel@holtmann.org> | 2006-02-03 03:39:33 +0000 | 
| commit | ce9b410db80d60fbc6d12c02255319d8ff0c3a53 (patch) | |
| tree | fd588fdca657f9e9990551a37ef6de54080d746a | |
| parent | 5de33324633a5239a57a2d1ce6ab322950bb4b77 (diff) | |
Fix an endless if an attribute range has been requested
| -rw-r--r-- | sdpd/request.c | 12 | 
1 files changed, 8 insertions, 4 deletions
| diff --git a/sdpd/request.c b/sdpd/request.c index 9e3f966f..1fdbdbe5 100644 --- a/sdpd/request.c +++ b/sdpd/request.c @@ -448,6 +448,7 @@ static int extract_attrs(sdp_record_t *rec, sdp_list_t *seq, uint8_t dtd, sdp_bu  			uint16_t attr;  			uint16_t low = (0xffff0000 & range) >> 16;  			uint16_t high = 0x0000ffff & range; +			sdp_data_t *data;  			SDPDBG("attr range : 0x%x\n", range);  			SDPDBG("Low id : 0x%x\n", low); @@ -460,11 +461,14 @@ static int extract_attrs(sdp_record_t *rec, sdp_list_t *seq, uint8_t dtd, sdp_bu  				break;  			}  			/* (else) sub-range of attributes */ -			for (attr = low; attr <= high; attr++) { -				sdp_data_t *a = (sdp_data_t *)sdp_data_get(rec, attr); -				if (a) -					sdp_append_to_pdu(buf, a); +			for (attr = low; attr < high; attr++) { +				data = sdp_data_get(rec, attr); +				if (data) +					sdp_append_to_pdu(buf, data);  			} +			data = sdp_data_get(rec, high); +			if (data) +				sdp_append_to_pdu(buf, data);  		}  		free(pdu.data);  	} else { | 
