]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-erspan.c
CHANGES: Add a change backported to 4.99
[tcpdump] / print-erspan.c
index db0e9a0c6c7d705da156ff2f4595df754fe69b76..1f8c9f00aa012730b11c9b356b17a91a06bfd1c6 100644 (file)
@@ -66,7 +66,7 @@
 #define ERSPAN2_INDEX_MASK     (0xfffffU << ERSPAN2_INDEX_SHIFT)
 
 void
-erspan_print_i_ii(netdissect_options *ndo, uint16_t flags, const u_char *bp, u_int len)
+erspan_i_ii_print(netdissect_options *ndo, uint16_t flags, const u_char *bp, u_int len)
 {
        uint32_t hdr, ver, vlan, cos, en, sid, index;
 
@@ -198,7 +198,7 @@ static const struct tok erspan3_ft_values[] = {
 };
 
 void
-erspan_print_iii(netdissect_options *ndo, const u_char *bp, u_int len)
+erspan_iii_print(netdissect_options *ndo, const u_char *bp, u_int len)
 {
        uint32_t hdr, hdr2, ver, cos, sid, ft;
 
@@ -244,11 +244,13 @@ erspan_print_iii(netdissect_options *ndo, const u_char *bp, u_int len)
 
        /* Skip timestamp */
        ND_ICHECK_U(len, <, 4);
+       ND_TCHECK_LEN(bp, 4);
        bp += 4;
        len -= 4;
 
        /* Skip SGT */
        ND_ICHECK_U(len, <, 2);
+       ND_TCHECK_LEN(bp, 2);
        bp += 2;
        len -= 2;
 
@@ -267,6 +269,7 @@ erspan_print_iii(netdissect_options *ndo, const u_char *bp, u_int len)
        if (hdr2 & ERSPAN3_O_MASK) {
                /* Yes.  Skip it. */
                ND_ICHECK_U(len, <, 8);
+               ND_TCHECK_LEN(bp, 8);
                bp += 8;
                len -= 8;
        }