X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/59864b113d8f2310a38d916e11a27c6f7e979ad9..bd00116d80c18b782f4cb15dfc90cd5bf993d4f5:/print-802_11.c diff --git a/print-802_11.c b/print-802_11.c index 2c9f2a38..2b4463ec 100644 --- a/print-802_11.c +++ b/print-802_11.c @@ -2332,6 +2332,7 @@ ieee802_11_print(netdissect_options *ndo, uint16_t fc; u_int caplen, hdrlen, meshdrlen; const uint8_t *src, *dst; + int llc_hdrlen; caplen = orig_caplen; /* Remove FCS, if present */ @@ -2408,14 +2409,17 @@ ieee802_11_print(netdissect_options *ndo, } } else { get_data_src_dst_mac(fc, p - hdrlen, &src, &dst); - if (llc_print(ndo, p, length, caplen, dst, src) == 0) { + llc_hdrlen = llc_print(ndo, p, length, caplen, dst, src); + if (llc_hdrlen < 0) { /* * Some kinds of LLC packet we cannot * handle intelligently */ if (!ndo->ndo_suppress_default_print) ND_DEFAULTPRINT(p, caplen); + llc_hdrlen = -llc_hdrlen; } + hdrlen += llc_hdrlen; } break; default: