diff --git a/lib/dns/include/dns/librpz.h b/lib/dns/include/dns/librpz.h index 87d189afb8..e971ab027d 100644 --- a/lib/dns/include/dns/librpz.h +++ b/lib/dns/include/dns/librpz.h @@ -887,6 +887,7 @@ librpz_lib_open(librpz_emsg_t *emsg, void **dl_handle, const char *path) { if (new_librpz != NULL) { if (dl_handle != NULL) { *dl_handle = handle; + handle = NULL; } return (new_librpz); } @@ -914,6 +915,7 @@ librpz_lib_open(librpz_emsg_t *emsg, void **dl_handle, const char *path) { if (new_librpz != NULL) { if (dl_handle != NULL) { *dl_handle = handle; + handle = NULL; } return (new_librpz); } diff --git a/lib/ns/query.c b/lib/ns/query.c index d82a96995b..a5fb82169a 100644 --- a/lib/ns/query.c +++ b/lib/ns/query.c @@ -3439,7 +3439,10 @@ dnsrps_set_p(librpz_emsg_t *emsg, ns_client_t *client, dns_rpz_st_t *st, region.length = pname_buf.size; dns_name_fromregion(st->p_name, ®ion); - rpz_ready(client, p_rdatasetp); + result = rpz_ready(client, p_rdatasetp); + if (result != ISC_R_SUCCESS) { + return (false); + } dns_db_attach(st->rpsdb, &p_db); policy = dns_dnsrps_2policy(rpsdb->result.policy); if (policy != DNS_RPZ_POLICY_RECORD) {