]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-ether.c
Revert "Ethernet: Remove two useless tests"
[tcpdump] / print-ether.c
index 887a8eee91b140da1a188a208c256e8b7089dbad..d6dd957242bd006cf7aa4ab6ccd8c060a28a7d26 100644 (file)
@@ -163,6 +163,10 @@ ether_print(netdissect_options *ndo,
                nd_print_trunc(ndo);
                return (caplen);
        }
+       if (length < ETHER_HDRLEN) {
+               nd_print_trunc(ndo);
+               return (length);
+       }
 
        if (ndo->ndo_eflag) {
                if (print_encap_header != NULL)
@@ -210,6 +214,11 @@ recurse:
                        nd_print_trunc(ndo);
                        return (hdrlen + caplen);
                }
+               if (length < 4) {
+                       ndo->ndo_protocol = "vlan";
+                       nd_print_trunc(ndo);
+                       return (hdrlen + length);
+               }
                if (ndo->ndo_eflag) {
                        uint16_t tag = EXTRACT_BE_U_2(p);