]> The Tcpdump Group git mirrors - tcpdump/commitdiff
Make the length argument to print_unknown_data() unsigned.
authorGuy Harris <[email protected]>
Wed, 27 May 2020 16:25:15 +0000 (09:25 -0700)
committerGuy Harris <[email protected]>
Wed, 27 May 2020 16:25:15 +0000 (09:25 -0700)
All data lengths should be unsigned.

netdissect.h
util-print.c

index 1c83361e029bb34dfc79be0c1453f4be1a7b1803..1e84d5ff090f692ec0c4d8bbfe5fdc1e3afcd4c7 100644 (file)
@@ -662,7 +662,7 @@ extern u_int ppp_print(netdissect_options *, const u_char *, u_int);
 extern u_int pppoe_print(netdissect_options *, const u_char *, u_int);
 extern void pptp_print(netdissect_options *, const u_char *);
 extern void ptp_print(netdissect_options *, const u_char *, u_int);
-extern int print_unknown_data(netdissect_options *, const u_char *, const char *, int);
+extern int print_unknown_data(netdissect_options *, const u_char *, const char *, u_int);
 extern const char *q922_string(netdissect_options *, const u_char *, u_int);
 extern void q933_print(netdissect_options *, const u_char *, u_int);
 extern void radius_print(netdissect_options *, const u_char *, u_int);
index c87e32653e4d575d3e6ab456cfdb7e5bdd8a91cc..cf45b386086635608e7eabc5c228d70beee9987c 100644 (file)
@@ -473,17 +473,13 @@ void nd_print_invalid(netdissect_options *ndo)
  */
 
 int
-print_unknown_data(netdissect_options *ndo, const u_char *cp,const char *ident,int len)
+print_unknown_data(netdissect_options *ndo, const u_char *cp,
+                   const char *ident, u_int len)
 {
        u_int len_to_print;
 
-       if (len < 0) {
-               ND_PRINT("%sDissector error: print_unknown_data called with negative length",
-                   ident);
-               return(0);
-       }
        len_to_print = len;
-       if (ndo->ndo_snapend < cp) {
+       if (!ND_TTEST_LEN(cp, 0)) {
                ND_PRINT("%sDissector error: print_unknown_data called with pointer past end of packet",
                    ident);
                return(0);