Re: [PATCH 1/1] Fixes sdp_get_supp_feat function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Elvis,

El Friday 14 May 2010 05:13:30 Elvis Pfützenreuter escribió:
> In case of string data items, value is a pointer by itself.
> ---
>  lib/sdp.c |    7 ++++++-
>  1 files changed, 6 insertions(+), 1 deletions(-)
> 
> diff --git a/lib/sdp.c b/lib/sdp.c
> index fb8ccdc..c75a000 100644
> --- a/lib/sdp.c
> +++ b/lib/sdp.c
> @@ -4801,10 +4801,15 @@ int sdp_get_supp_feat(const sdp_record_t *rec,
> sdp_list_t **seqp) subseq = NULL;
>  		for (dd = d->val.dataseq; dd; dd = dd->next) {
>  			sdp_data_t *data;
> +			void *val;
>  			if (dd->dtd != SDP_UINT8 && dd->dtd != SDP_UINT16 &&
>  						dd->dtd != SDP_TEXT_STR8)
>  				goto fail;
> -			data = sdp_data_alloc(dd->dtd, &dd->val);
> +			if (dd->dtd == SDP_TEXT_STR8)
> +				val = dd->val.str;
> +			else
> +				val = &dd->val;
> +			data = sdp_data_alloc(dd->dtd, val);

No only strings are pointers, if you see this patch:
http://git.kernel.org/?p=bluetooth/bluez.git;a=commit;h=1d1154156df28660e41031df5c3f1ffe91c01aae

that I sent few days ago for fixing the set function, also sequences are 
pointers and should be treated in a different way. Also strings can be formed 
by other types not only SDP_TEXT_STR8. I think a switch will fix this better.

>  			if (data)
>  				subseq = sdp_list_append(subseq, data);
>  		}

Regards.
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux