]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-domain.c
DNS: Add a length check
[tcpdump] / print-domain.c
index 9a2b9e85687b633fcb4564ff299cd85f738c358e..e29a9b4b0f9be579f063f9d8b3dc52c568745043 100644 (file)
@@ -582,6 +582,13 @@ ns_print(netdissect_options *ndo,
        register const u_char *cp;
        uint16_t b2;
 
+       if(length < sizeof(*np)) {
+               ND_PRINT((ndo, "domain"));
+               ND_PRINT((ndo, " [length %u < %zu]", length, sizeof(*np)));
+               ND_PRINT((ndo, " (invalid)"));
+               return;
+       }
+
        np = (const HEADER *)bp;
        ND_TCHECK(*np);
        /* get the byte-order right */