- rpz-zone-load, handle alloc failures from dname_rdata_to_str.

This commit is contained in:
W.C.A. Wijngaards 2026-01-28 13:58:09 +01:00
parent 17f64b818e
commit 1d18f34c79
3 changed files with 9 additions and 9 deletions

View file

@ -305,7 +305,7 @@ respip_enter_rr_wol(struct regional* region, struct resp_addr* raddr,
char* rrstr = dname_rdata_to_str(NULL, 0, rrtype,
rrclass, ttl, rdata_wol, rdata_len);
log_err("CNAME response-ip data (%s) can not co-exist with other "
"response-ip data for netblock %s", rrstr, netblockstr);
"response-ip data for netblock %s", (rrstr?rrstr:"<out of memory>"), netblockstr);
free(rrstr);
return 0;
} else if (raddr->data &&
@ -313,7 +313,7 @@ respip_enter_rr_wol(struct regional* region, struct resp_addr* raddr,
char* rrstr = dname_rdata_to_str(NULL, 0, rrtype,
rrclass, ttl, rdata_wol, rdata_len);
log_err("response-ip data (%s) can not be added; CNAME response-ip "
"data already in place for netblock %s", rrstr, netblockstr);
"data already in place for netblock %s", (rrstr?rrstr:"<out of memory>"), netblockstr);
free(rrstr);
return 0;
} else if((rrtype != LDNS_RR_TYPE_CNAME) &&
@ -322,7 +322,7 @@ respip_enter_rr_wol(struct regional* region, struct resp_addr* raddr,
char* rrstr = dname_rdata_to_str(NULL, 0, rrtype,
rrclass, ttl, rdata_wol, rdata_len);
log_err("response-ip data %s record type does not correspond "
"to netblock %s address family", rrstr, netblockstr);
"to netblock %s address family", (rrstr?rrstr:"<out of memory>"), netblockstr);
free(rrstr);
return 0;
}

View file

@ -697,7 +697,7 @@ local_zone_enter_rr_wol(struct local_zone* z, uint8_t* nm, size_t nmlen,
char* rrstr = dname_rdata_to_str(nm, nmlen, rrtype,
rrclass, ttl, rdata_wol, rdata_len);
log_err("local-data '%s' in redirect zone must not "
"coexist with %s local-data", rrstr, othertype);
"coexist with %s local-data", (rrstr?rrstr:"<out of memory>"), othertype);
free(rrstr);
return 0;
}
@ -722,7 +722,7 @@ local_zone_enter_rr_wol(struct local_zone* z, uint8_t* nm, size_t nmlen,
if(rr_is_duplicate_wol(pd, rdata_wol, rdata_len)) {
char* rrstr = dname_rdata_to_str(nm, nmlen, rrtype,
rrclass, ttl, rdata_wol, rdata_len);
verbose(VERB_ALGO, "ignoring duplicate RR: %s", rrstr);
verbose(VERB_ALGO, "ignoring duplicate RR: %s", (rrstr?rrstr:"<out of memory>"));
free(rrstr);
return 1;
}
@ -730,7 +730,7 @@ local_zone_enter_rr_wol(struct local_zone* z, uint8_t* nm, size_t nmlen,
char* rrstr = dname_rdata_to_str(nm, nmlen, rrtype,
rrclass, ttl, rdata_wol, rdata_len);
log_warn("RRset %s has more than %d records, record ignored",
rrstr, LOCALZONE_RRSET_COUNT_MAX);
(rrstr?rrstr:"<out of memory>"), LOCALZONE_RRSET_COUNT_MAX);
free(rrstr);
return 1;
}

View file

@ -711,7 +711,7 @@ rpz_insert_local_zones_trigger(struct local_zones* lz, uint8_t* dname,
if(duplicate) {
char* rrstr = dname_rdata_to_str(dname, dnamelen, rrtype,
rrclass, ttl, rdata, rdata_len);
verbose(VERB_ALGO, "rpz: skipping duplicate record: %s", rrstr);
verbose(VERB_ALGO, "rpz: skipping duplicate record: %s", (rrstr?rrstr:"<out of memory>"));
free(rrstr);
free(dname);
lock_rw_unlock(&lz->lock);
@ -732,7 +732,7 @@ rpz_insert_local_zones_trigger(struct local_zones* lz, uint8_t* dname,
if(z != NULL && a != RPZ_LOCAL_DATA_ACTION) {
char* rrstr = dname_rdata_to_str(dname, dnamelen, rrtype,
rrclass, ttl, rdata, rdata_len);
verbose(VERB_ALGO, "rpz: skipping duplicate record: %s", rrstr);
verbose(VERB_ALGO, "rpz: skipping duplicate record: %s", (rrstr?rrstr:"<out of memory>"));
free(rrstr);
free(dname);
lock_rw_unlock(&lz->lock);
@ -982,7 +982,7 @@ rpz_clientip_insert_trigger_rr(struct clientip_synthesized_rrset* set, struct so
rrstr = dname_rdata_to_str(NULL, 0, rrtype, rrclass, ttl,
rdata, rdata_len);
log_err("rpz: unexpected: unable to insert %s: %s/%d %s",
"client ip address", as, net, rrstr);
"client ip address", as, net, (rrstr?rrstr:"<out of memory>"));
free(rrstr);
return 0;
}