OSDN Git Service

tools/hcidump: Fix parsing of Search PDU
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Thu, 13 Jun 2013 08:58:12 +0000 (11:58 +0300)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Thu, 13 Jun 2013 14:14:43 +0000 (17:14 +0300)
tools/parser/avrcp.c

index 151628c..b523533 100644 (file)
@@ -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;