Index: sdp-xml.c =================================================================== RCS file: /cvsroot/bluez/utils/common/sdp-xml.c,v retrieving revision 1.7 diff -u -r1.7 sdp-xml.c --- sdp-xml.c 20 Jan 2007 21:28:02 -0000 1.7 +++ sdp-xml.c 6 Feb 2007 05:12:31 -0000 @@ -265,7 +265,7 @@ if (hex) { appender(data, "encoding=\"hex\" "); strBuf = (char *) malloc(sizeof(char) - * (value->unitSize * 2 + 1)); + * ((value->unitSize-1) * 2 + 1)); /* Unit Size seems to include the size for dtd It is thus off by 1 @@ -276,7 +276,7 @@ "%02x", (unsigned char) value->val.str[i]); - strBuf[value->unitSize * 2] = '\0'; + strBuf[(value->unitSize-1) * 2] = '\0'; } else { int j; @@ -603,7 +603,7 @@ buf[0] = data[i]; buf[1] = data[i + 1]; - val.data[i] = strtoul(buf, 0, 16); + val.data[i >> 1] = strtoul(buf, 0, 16); } ret = sdp_data_alloc(dtd, &val);