Fix a bug in rpz.c:del_name()

When the dns_qp_getname() call returns an error the del_name() function
just returns without cleaning up the trasnaction.

Instead of returning, jump to a new label 'done:' similar to the code
written in the add_nm() function.

(cherry picked from commit 4df5b9ac32)
This commit is contained in:
Aram Sargsyan 2026-03-11 12:39:51 +00:00 committed by Ondřej Surý (GitLab job 7027354)
parent 1844afec7b
commit 439144bcaa

View file

@ -2370,7 +2370,8 @@ del_name(dns_rpz_zone_t *rpz, dns_rpz_type_t rpz_type,
result = dns_qp_getname(qp, trig_name, (void **)&data, NULL);
if (result != ISC_R_SUCCESS) {
return;
INSIST(data == NULL);
goto done;
}
INSIST(data != NULL);
@ -2412,6 +2413,7 @@ del_name(dns_rpz_zone_t *rpz, dns_rpz_type_t rpz_type,
RWUNLOCK(&rpz->rpzs->search_lock, isc_rwlocktype_write);
}
done:
dns_qp_compact(qp, DNS_QPGC_MAYBE);
dns_qpmulti_commit(rpzs->table, &qp);
}