diff options
author | Francois-Xavier Le Bail <devel.fx.lebail@orange.fr> | 2021-12-29 14:38:08 +0100 |
---|---|---|
committer | Francois-Xavier Le Bail <devel.fx.lebail@orange.fr> | 2021-12-29 15:11:32 +0100 |
commit | ef5323efe6c03aaa50eac0949bf95999b91fe05b (patch) | |
tree | da57e896fb5cdafd8bff2defafc304ee73cef643 /print-gre.c | |
parent | 72a3d5e76fff0c9ed7992076d93990bd925cc995 (diff) | |
download | tcpdump-ef5323efe6c03aaa50eac0949bf95999b91fe05b.tar.gz |
Update the ND_LCHECK*() macros to ND_ICHECK*() macros
ICHECK like Invalid-Check.
Reminder: If the checked expression is true an error message is printed
and a 'goto invalid' is executed.
This change adds the parameter 'operator'.
Before this change, '<' comparison was hard coded.
We can do now:
ND_ICHECK_U(length, <, HEADER_LEN);
ND_ICHECK_U(length, ==, 24);
ND_ICHECK_U(length, !=, 8);
ND_ICHECK_ZU(length, <, sizeof(struct my_struct));
ND_ICHECKMSG_U("message length", msg_tlen, <, 4);
...
(Any comparison operator)
Remark: The change of names from ND_LCHECK*() to ND_ICHECK*() is
because something else than a length(L) can be checked.
Moreover:
Place the 'message' parameter at the beginning of ND_ICHECKMSG_U()
and ND_ICHECKMSG_ZU() paramaters lists.
Diffstat (limited to 'print-gre.c')
-rw-r--r-- | print-gre.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/print-gre.c b/print-gre.c index a28edf5c..136fb69d 100644 --- a/print-gre.c +++ b/print-gre.c @@ -83,7 +83,7 @@ gre_print(netdissect_options *ndo, const u_char *bp, u_int length) ndo->ndo_protocol = "gre"; nd_print_protocol_caps(ndo); - ND_LCHECK_U(length, 2); + ND_ICHECK_U(length, <, 2); vers = GET_BE_U_2(bp) & GRE_VERS_MASK; ND_PRINT("v%u",vers); @@ -110,7 +110,7 @@ gre_print_0(netdissect_options *ndo, const u_char *bp, u_int length) u_int len = length; uint16_t flags, prot; - ND_LCHECK_U(len, 2); + ND_ICHECK_U(len, <, 2); flags = GET_BE_U_2(bp); if (ndo->ndo_vflag) ND_PRINT(", Flags [%s]", @@ -119,7 +119,7 @@ gre_print_0(netdissect_options *ndo, const u_char *bp, u_int length) len -= 2; bp += 2; - ND_LCHECK_U(len, 2); + ND_ICHECK_U(len, <, 2); prot = GET_BE_U_2(bp); len -= 2; bp += 2; @@ -127,28 +127,28 @@ gre_print_0(netdissect_options *ndo, const u_char *bp, u_int length) if ((flags & GRE_CP) | (flags & GRE_RP)) { uint16_t sum; - ND_LCHECK_U(len, 2); + ND_ICHECK_U(len, <, 2); sum = GET_BE_U_2(bp); if (ndo->ndo_vflag) ND_PRINT(", sum 0x%x", sum); bp += 2; len -= 2; - ND_LCHECK_U(len, 2); + ND_ICHECK_U(len, <, 2); ND_PRINT(", off 0x%x", GET_BE_U_2(bp)); bp += 2; len -= 2; } if (flags & GRE_KP) { - ND_LCHECK_U(len, 4); + ND_ICHECK_U(len, <, 4); ND_PRINT(", key=0x%x", GET_BE_U_4(bp)); bp += 4; len -= 4; } if (flags & GRE_SP) { - ND_LCHECK_U(len, 4); + ND_ICHECK_U(len, <, 4); ND_PRINT(", seq %u", GET_BE_U_4(bp)); bp += 4; len -= 4; @@ -160,7 +160,7 @@ gre_print_0(netdissect_options *ndo, const u_char *bp, u_int length) uint8_t sreoff; uint8_t srelen; - ND_LCHECK_U(len, 4); + ND_ICHECK_U(len, <, 4); af = GET_BE_U_2(bp); sreoff = GET_U_1(bp + 2); srelen = GET_U_1(bp + 3); @@ -173,7 +173,7 @@ gre_print_0(netdissect_options *ndo, const u_char *bp, u_int length) if (!gre_sre_print(ndo, af, sreoff, srelen, bp, len)) goto invalid; - ND_LCHECK_U(len, srelen); + ND_ICHECK_U(len, <, srelen); bp += srelen; len -= srelen; } @@ -227,7 +227,7 @@ gre_print_1(netdissect_options *ndo, const u_char *bp, u_int length) u_int len = length; uint16_t flags, prot; - ND_LCHECK_U(len, 2); + ND_ICHECK_U(len, <, 2); flags = GET_BE_U_2(bp); len -= 2; bp += 2; @@ -236,7 +236,7 @@ gre_print_1(netdissect_options *ndo, const u_char *bp, u_int length) ND_PRINT(", Flags [%s]", bittok2str(gre_flag_values,"none",flags)); - ND_LCHECK_U(len, 2); + ND_ICHECK_U(len, <, 2); prot = GET_BE_U_2(bp); len -= 2; bp += 2; @@ -245,7 +245,7 @@ gre_print_1(netdissect_options *ndo, const u_char *bp, u_int length) if (flags & GRE_KP) { uint32_t k; - ND_LCHECK_U(len, 4); + ND_ICHECK_U(len, <, 4); k = GET_BE_U_4(bp); ND_PRINT(", call %u", k & 0xffff); len -= 4; @@ -253,14 +253,14 @@ gre_print_1(netdissect_options *ndo, const u_char *bp, u_int length) } if (flags & GRE_SP) { - ND_LCHECK_U(len, 4); + ND_ICHECK_U(len, <, 4); ND_PRINT(", seq %u", GET_BE_U_4(bp)); bp += 4; len -= 4; } if (flags & GRE_AP) { - ND_LCHECK_U(len, 4); + ND_ICHECK_U(len, <, 4); ND_PRINT(", ack %u", GET_BE_U_4(bp)); bp += 4; len -= 4; @@ -342,7 +342,7 @@ gre_sre_ip_print(netdissect_options *ndo, uint8_t sreoff, uint8_t srelen, } while (srelen != 0) { - ND_LCHECK_U(len, 4); + ND_ICHECK_U(len, <, 4); ND_TCHECK_LEN(bp, sizeof(nd_ipv4)); addrtostr(bp, buf, sizeof(buf)); @@ -379,7 +379,7 @@ gre_sre_asn_print(netdissect_options *ndo, uint8_t sreoff, uint8_t srelen, } while (srelen != 0) { - ND_LCHECK_U(len, 2); + ND_ICHECK_U(len, <, 2); ND_PRINT(" %s%x", ((bp - up) == sreoff) ? "*" : "", GET_BE_U_2(bp)); |