diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2006-02-09 16:04:25 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2006-02-09 16:04:25 +0000 |
commit | b1368add22552e7bd1b094dddccb00c153e9b344 (patch) | |
tree | fff4cc5122d4d3a8ec99a6130e40897f39885513 /parser/l2cap.c | |
parent | 82a2b69f459590202bc8c5c17950eb4eeb836938 (diff) | |
download | hcidump-b1368add22552e7bd1b094dddccb00c153e9b344.tar.gz |
Fix stupid DoS problem
Diffstat (limited to 'parser/l2cap.c')
-rw-r--r-- | parser/l2cap.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/parser/l2cap.c b/parser/l2cap.c index a494198..8d513f8 100644 --- a/parser/l2cap.c +++ b/parser/l2cap.c @@ -699,8 +699,12 @@ static void l2cap_parse(int level, struct frame *frm) hdr->code, hdr->ident, btohs(hdr->len)); raw_dump(level, frm); } - frm->ptr += btohs(hdr->len); - frm->len -= btohs(hdr->len); + + if (frm->len > btohs(hdr->len)) { + frm->len -= btohs(hdr->len); + frm->ptr += btohs(hdr->len); + } else + frm->len = 0; } } else if (cid == 0x2) { /* Connectionless channel */ |