Fixes a heap overflow found with American Fuzzy Lop by Hanno Böck.
length + hdrlen));
if ((control & ~LLC_U_POLL) == LLC_XID) {
+ if (caplen < 2 || length < 2) {
+ ND_PRINT((ndo, "[|llc]"));
+ if (caplen > 0)
+ ND_DEFAULTPRINT((const u_char *)p, caplen);
+ return (hdrlen);
+ }
if (*p == LLC_XID_FI) {
ND_PRINT((ndo, ": %02x %02x", p[1], p[2]));
return (hdrlen);
atm-oam-heapoverflow atm-oam-heapoverflow.pcap atm-oam-heapoverflow.out -t -v -n
tcp_header_heapoverflow tcp_header_heapoverflow.pcap tcp_header_heapoverflow.out -t -v -n
ipcomp-heapoverflow ipcomp-heapoverflow.pcap ipcomp-heapoverflow.out -t -v -n
+llc-xid-heapoverflow llc-xid-heapoverflow.pcap llc-xid-heapoverflow.out -t -v -n
--- /dev/null
+Unknown DSAP 0x30 Unnumbered, xid, Flags [Poll], length 808464412[|llc]