]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-ether.c
Revert "Clean a bunch of fuzzed files not to fuzz the container."
[tcpdump] / print-ether.c
index 954668c4a2b5bf759a4ae478ada2a2f6c7912a03..5607bfc3ba5a00951c057bdaa73e4097e4e7e7de 100644 (file)
@@ -86,7 +86,7 @@ const struct tok ethertype_values[] = {
     { ETHERTYPE_PPPOED,         "PPPoE D" },
     { ETHERTYPE_PPPOES,         "PPPoE S" },
     { ETHERTYPE_EAPOL,          "EAPOL" },
-    { ETHERTYPE_RRCP,           "RRCP" },
+    { ETHERTYPE_REALTEK,        "Realtek protocols" },
     { ETHERTYPE_MS_NLB_HB,      "MS NLB heartbeat" },
     { ETHERTYPE_JUMBO,          "Jumbo" },
     { ETHERTYPE_NSH,            "NSH" },
@@ -222,7 +222,7 @@ recurse:
                }
 
                int ret = macsec_print(ndo, &p, &length, &caplen, &hdrlen,
-                   &src, &dst);
+                                      &src, &dst);
 
                if (ret == 0) {
                        /* Payload is encrypted; print it as raw data. */
@@ -238,6 +238,7 @@ recurse:
                         */
                        length_type = GET_BE_U_2(p);
 
+                       ND_ICHECK_U(caplen, <, 2);
                        length -= 2;
                        caplen -= 2;
                        p += 2;
@@ -403,6 +404,7 @@ recurse:
                                ND_DEFAULTPRINT(p, caplen);
                }
        }
+invalid:
        return hdrlen;
 }
 
@@ -582,8 +584,8 @@ ethertype_print(netdissect_options *ndo,
                eapol_print(ndo, p);
                return (1);
 
-       case ETHERTYPE_RRCP:
-               rrcp_print(ndo, p, length, src, dst);
+       case ETHERTYPE_REALTEK:
+               rtl_print(ndo, p, length, src, dst);
                return (1);
 
        case ETHERTYPE_PPP: