From: Guy Harris Date: Wed, 27 May 2020 05:09:11 +0000 (-0700) Subject: clnp: use ND_BYTES_BETWEEN() to get the bytes between two packet pointers. X-Git-Tag: tcpdump-4.99-bp~372 X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/ae251eb4a434dc68535aa307beca6358d905466b clnp: use ND_BYTES_BETWEEN() to get the bytes between two packet pointers. That'll cast it to a u_int, so it's 1) unsigned and 2) not 64-bit on LP64 or LLP64 platforms. --- diff --git a/print-isoclns.c b/print-isoclns.c index b3568714..882da50a 100644 --- a/print-isoclns.c +++ b/print-isoclns.c @@ -1135,9 +1135,9 @@ clnp_print(netdissect_options *ndo, default: /* dump the PDU specific data */ - if (length-(pptr-optr) > 0) { + if (length > ND_BYTES_BETWEEN(pptr, optr)) { ND_PRINT("\n\t undecoded non-header data, length %u", length-li); - print_unknown_data(ndo, pptr, "\n\t ", length - (int)(pptr - optr)); + print_unknown_data(ndo, pptr, "\n\t ", length - ND_BYTES_BETWEEN(pptr, optr)); } }