OSDN Git Service

tools: Fix AVRCP parsing of GetFolderItems for folders and items
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Fri, 19 Apr 2013 13:33:37 +0000 (16:33 +0300)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Fri, 19 Apr 2013 18:58:48 +0000 (21:58 +0300)
Length of name is 2 bytes not 1

tools/parser/avrcp.c

index 8404882..c8ecdc5 100644 (file)
@@ -1748,8 +1748,8 @@ static const char *foldertype2str(uint8_t type)
 
 static void avrcp_folder_item_dump(int level, struct frame *frm, uint16_t len)
 {
-       uint8_t type, playable, namelen;
-       uint16_t charset;
+       uint8_t type, playable;
+       uint16_t charset, namelen;
        uint64_t uid;
 
        p_indent(level, frm);
@@ -1781,8 +1781,8 @@ static void avrcp_folder_item_dump(int level, struct frame *frm, uint16_t len)
 
        p_indent(level, frm);
 
-       namelen = get_u8(frm);
-       printf("NameLength: 0x%02x (%u)\n", namelen, namelen);
+       namelen = get_u16(frm);
+       printf("NameLength: 0x%04x (%u)\n", namelen, namelen);
 
        p_indent(level, frm);
 
@@ -1845,8 +1845,8 @@ static void avrcp_media_element_item_dump(int level, struct frame *frm,
                                                                uint16_t len)
 {
        uint64_t uid;
-       uint16_t charset;
-       uint8_t type, namelen, count;
+       uint16_t charset, namelen;
+       uint8_t type, count;
 
        if (len < 14) {
                printf("PDU Malformed\n");
@@ -1869,8 +1869,8 @@ static void avrcp_media_element_item_dump(int level, struct frame *frm,
 
        p_indent(level, frm);
 
-       namelen = get_u8(frm);
-       printf("NameLength: 0x%02x (%u)\n", namelen, namelen);
+       namelen = get_u16(frm);
+       printf("NameLength: 0x%04x (%u)\n", namelen, namelen);
 
        p_indent(level, frm);