From: Guy Harris Date: Sat, 24 Feb 2024 23:55:30 +0000 (-0800) Subject: domain: handle too-short URI RRs correctly. X-Git-Tag: tcpdump-4.99.5~100 X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/1f563c19e77e7be5e1a2e3b6336d0475d7530f61 domain: handle too-short URI RRs correctly. Just report the problem and drive on, not trying to print the contents. (cherry picked from commit 63f720690fe8a087ef8fafb6fc3ba0c4a8b981de) --- diff --git a/print-domain.c b/print-domain.c index d93aee73..dcbd982c 100644 --- a/print-domain.c +++ b/print-domain.c @@ -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