]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-juniper.c
sFlow: Add a test capture file
[tcpdump] / print-juniper.c
index 009897da49ed7b3c471b862ba5f9487d79354862..416b2f193eab7341370d8a12a7401e89efb4ef40 100644 (file)
@@ -425,11 +425,11 @@ struct juniper_l2info_t {
     uint32_t caplen;
     uint32_t pictype;
     uint8_t direction;
-    uint8_t header_len;
+    u_int header_len;
     uint8_t cookie_len;
     uint8_t cookie_type;
     uint8_t cookie[8];
-    uint8_t bundle;
+    u_int bundle;
     uint16_t proto;
     uint8_t flags;
 };
@@ -1399,6 +1399,11 @@ juniper_parse_header(netdissect_options *ndo,
                        lp->s,
                        l2info->cookie_len);
 
+            if (l2info->cookie_len > 8) {
+                nd_print_invalid(ndo);
+                return 0;
+            }
+
             if (l2info->cookie_len > 0) {
                 ND_TCHECK_LEN(p, l2info->cookie_len);
                 if (ndo->ndo_eflag)