Guard against NULL delegset in query_delegation_recurse()

If both dns_view_bestzonecut() and dns_deleg_fromrdataset() fail,
delegset stays NULL.  Passing it to ns_query_recurse() would crash
on the REQUIRE(DNS_DELEGSET_VALID(delegset)) in createfetch().

Return ISC_R_NOTFOUND instead, which lets the caller handle the
failure gracefully.
This commit is contained in:
Ondřej Surý 2026-03-14 08:20:43 +01:00 committed by Colin Vidal
parent 3a339cfca4
commit a1cb966944

View file

@ -8670,8 +8670,13 @@ query_delegation_recurse(query_ctx_t *qctx) {
fname = qctx->fname;
}
result = ns_query_recurse(qctx->client, qctx->qtype, qname,
fname, delegset, qctx->resuming);
if (delegset == NULL) {
result = ISC_R_NOTFOUND;
} else {
result = ns_query_recurse(qctx->client, qctx->qtype,
qname, fname, delegset,
qctx->resuming);
}
if (delegset != NULL) {
dns_delegset_detach(&delegset);