Diff between 99ffc57b9d63fd40b995553ef73ae8bf2620bf10 and 21f08a508a1934a8848ecd395651b586a8e79412

Changed Files

File Additions Deletions Status
tools/parser/avdtp.c +10 -6 modified

Full Patch

diff --git a/tools/parser/avdtp.c b/tools/parser/avdtp.c
index 5fb451a..97652a9 100644
--- a/tools/parser/avdtp.c
+++ b/tools/parser/avdtp.c
@@ -98,15 +98,19 @@ void avdtp_dump(int level, struct frame *frm)
 {
 	uint8_t hdr, sid = 0xff, nsp;
 
-	hdr = get_u8(frm);
+	p_indent(level, frm);
 
-	nsp = (hdr & 0x0c) == 0x04 ? get_u8(frm) : 0;
-	sid = hdr & 0x08 ? 0x00 : get_u8(frm);
+	if (frm->num < 2) {
+		hdr = get_u8(frm);
 
-	p_indent(level, frm);
+		nsp = (hdr & 0x0c) == 0x04 ? get_u8(frm) : 0;
+		sid = hdr & 0x08 ? 0x00 : get_u8(frm);
 
-	printf("AVDTP(s): %s %s: transaction %d\n",
-		sid & 0x08 ? pt2str(hdr) : si2str(sid), mt2str(hdr), hdr >> 4);
+		printf("AVDTP(s): %s %s: transaction %d\n",
+			sid & 0x08 ? pt2str(hdr) : si2str(sid), mt2str(hdr), hdr >> 4);
+	} else {
+		printf("AVDTP(m): \n");
+	}
 
 	raw_dump(level, frm);
 }