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.
This commit is contained in:
Aram Sargsyan 2026-03-11 12:39:51 +00:00 committed by Ondřej Surý
parent 40aa5cfe2c
commit 4df5b9ac32
No known key found for this signature in database
GPG key ID: 2820F37E873DEA41

View file

@ -2272,7 +2272,8 @@ del_name(dns_rpz_zone_t *rpz, dns_rpz_type_t rpz_type,
result = dns_qp_getname(qp, trig_name, DNS_DBNAMESPACE_NORMAL,
(void **)&data, NULL);
if (result != ISC_R_SUCCESS) {
return;
INSIST(data == NULL);
goto done;
}
INSIST(data != NULL);
@ -2315,6 +2316,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);
}