From: Luiz Augusto von Dentz Date: Thu, 13 Jun 2013 08:58:12 +0000 (+0300) Subject: tools/hcidump: Fix parsing of Search PDU X-Git-Tag: android-x86-4.4-r3~7989 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=cf00b35d294ca0c7e4f7866587daea9177dc0523;p=android-x86%2Fexternal-bluetooth-bluez.git tools/hcidump: Fix parsing of Search PDU --- diff --git a/tools/parser/avrcp.c b/tools/parser/avrcp.c index 151628c48..b52353396 100644 --- a/tools/parser/avrcp.c +++ b/tools/parser/avrcp.c @@ -2108,15 +2108,15 @@ static void avrcp_search_dump(int level, struct frame *frm, uint8_t hdr, uint16_t len) { uint32_t uidcounter, items; - uint16_t charset; - uint8_t namelen, status; + uint16_t charset, namelen; + uint8_t status; p_indent(level, frm); if (hdr & 0x02) goto response; - if (len < 3) { + if (len < 4) { printf("PDU Malformed\n"); raw_dump(level, frm); return; @@ -2127,8 +2127,8 @@ static void avrcp_search_dump(int level, struct frame *frm, uint8_t hdr, p_indent(level, frm); - namelen = get_u8(frm); - printf("Length: 0x%02x (%u)\n", namelen, namelen); + namelen = get_u16(frm); + printf("Length: 0x%04x (%u)\n", namelen, namelen); p_indent(level, frm); @@ -2137,6 +2137,7 @@ static void avrcp_search_dump(int level, struct frame *frm, uint8_t hdr, uint8_t c = get_u8(frm); printf("%1c", isprint(c) ? c : '.'); } + printf("\n"); return;