]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-ether.c
Include <config.h> unconditionally
[tcpdump] / print-ether.c
index a6c55c1cd33e73fdae69e590402c9503b92161ad..6768499adf77cfd28d210aaad0110b3ce54ef70d 100644 (file)
@@ -21,9 +21,7 @@
 
 /* \summary: Ethernet printer */
 
-#ifdef HAVE_CONFIG_H
 #include <config.h>
-#endif
 
 #include "netdissect-stdinc.h"
 
@@ -86,7 +84,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" },
@@ -238,7 +236,7 @@ recurse:
                         */
                        length_type = GET_BE_U_2(p);
 
-                       ND_LCHECK_U(caplen, 2);
+                       ND_ICHECK_U(caplen, <, 2);
                        length -= 2;
                        caplen -= 2;
                        p += 2;
@@ -306,7 +304,10 @@ recurse:
                 * Cut off the snapshot length to the end of the
                 * payload.
                 */
-               nd_push_snapend(ndo, p + length);
+               if (!nd_push_snaplen(ndo, p, length)) {
+                       (*ndo->ndo_error)(ndo, S_ERR_ND_MEM_ALLOC,
+                               "%s: can't push snaplen on buffer stack", __func__);
+               }
 
                if (ndo->ndo_eflag) {
                        ND_PRINT("802.3");
@@ -409,7 +410,7 @@ invalid:
 }
 
 /*
- * Print an Ethernet frame while specyfing a non-standard Ethernet header
+ * Print an Ethernet frame while specifying a non-standard Ethernet header
  * length.
  * This might be encapsulated within another frame; we might be passed
  * a pointer to a function that can print header information for that
@@ -584,8 +585,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: