sdp_uuid128_create() gets the 128-bit UUID on big-endian (human-readable
format) byte order. Service declaration attributes puts the UUIDs in the
attribute value field using little endian order. This patch converts the
128-bit UUID from little-endian to big-endian before creating uuid_t.
if (a->len == 2)
sdp_uuid16_create(&svc, get_le16(a->data));
- else if (a->len == 16)
- sdp_uuid128_create(&svc, a->data);
- else
+ else if (a->len == 16) {
+ uint8_t be128[16];
+
+ /* Converting from LE to BE */
+ bswap_128(a->data, be128);
+ sdp_uuid128_create(&svc, be128);
+ } else
return 0;
record = server_record_new(&svc, handle, end);