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);