]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-domain.c
domain: handle too-short URI RRs correctly.
[tcpdump] / print-domain.c
index d93aee73b254b65014563a75ad45a38e6243322d..dcbd982cb4e3a520aca1bfd6e2f78512e1a2304f 100644 (file)
@@ -839,7 +839,10 @@ ns_rprint(netdissect_options *ndo,
        case T_URI:
                if (!ND_TTEST_LEN(cp, len))
                        return(NULL);
-               ND_ICHECK_U(len, <, 4);
+               if (len < 4) {
+                       ND_PRINT(" len %u is too short (< 4)", len);
+                       break;
+               }
                ND_PRINT(" %u %u ", GET_BE_U_2(cp), GET_BE_U_2(cp + 2));
                if (nd_printn(ndo, cp + 4, len - 4, ndo->ndo_snapend))
                        return(NULL);
@@ -895,8 +898,6 @@ ns_rprint(netdissect_options *ndo,
            }
        }
        return (rp);            /* XXX This isn't always right */
-invalid:
-       nd_print_invalid(ndo);
 }
 
 void