]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-ipx.c
IPX: Add a length check
[tcpdump] / print-ipx.c
index 674dd4578848b551c1283119ae20f7492855a598..c724e87f862b5b8fa393c0322f69fbb360c8ba9e 100644 (file)
@@ -90,6 +90,11 @@ ipx_print(netdissect_options *ndo, const u_char *p, u_int length)
        ND_TCHECK_2(ipx->length);
        length = EXTRACT_BE_U_2(ipx->length);
 
+       if (length < ipxSize) {
+               ND_PRINT("[length %u < %u]", length, ipxSize);
+               nd_print_invalid(ndo);
+               return;
+       }
        ipx_decode(ndo, ipx, p + ipxSize, length - ipxSize);
        return;
 trunc: