From: Guy Harris Date: Sat, 1 Jun 2019 21:42:09 +0000 (-0700) Subject: If decode_prefix6() returns a negative number, don't print buf. X-Git-Tag: tcpdump-4.99-bp~763 X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/511915bef7e4de2f31b8d9f581b4a44b0cfbcf53 If decode_prefix6() returns a negative number, don't print buf. If it returns a negative number, it hasn't necessarily filled in buf, so just return immediately; this is similar to the IPv4 code path, wherein we just return a negative number, and print nothing, on an error. This should fix GitHub issue #763. --- diff --git a/print-hncp.c b/print-hncp.c index 8be59e37..3a3c01ea 100644 --- a/print-hncp.c +++ b/print-hncp.c @@ -231,6 +231,8 @@ print_prefix(netdissect_options *ndo, const u_char *prefix, u_int max_length) plenbytes += 1 + IPV4_MAPPED_HEADING_LEN; } else { plenbytes = decode_prefix6(ndo, prefix, max_length, buf, sizeof(buf)); + if (plenbytes < 0) + return plenbytes; } ND_PRINT("%s", buf);