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