Diff between 4f44cff537da95631773dd1d9dea005f616cd91b and a48d9dedf2bf9aabf0b9d3d5f1386e5d6770b2f2

Changed Files

File Additions Deletions Status
tools/parser/l2cap.c +6 -0 modified

Full Patch

diff --git a/tools/parser/l2cap.c b/tools/parser/l2cap.c
index fa41f2a..9fad9be 100644
--- a/tools/parser/l2cap.c
+++ b/tools/parser/l2cap.c
@@ -1094,6 +1094,12 @@ void l2cap_dump(int level, struct frame *frm)
 		hdr  = frm->ptr;
 		dlen = btohs(hdr->len);
 
+		if (dlen + L2CAP_HDR_SIZE < (int) frm->len) {
+			/* invalid frame */
+			raw_dump(level,frm);
+			return;
+		}
+
 		if ((int) frm->len == (dlen + L2CAP_HDR_SIZE)) {
 			/* Complete frame */
 			l2cap_parse(level, frm);