mirror of
https://github.com/NLnetLabs/unbound.git
synced 2025-12-23 08:10:30 -05:00
- Add more logging for out-of-memory cases.
This commit is contained in:
parent
71f311dbe1
commit
e9a5f5ab3f
4 changed files with 23 additions and 6 deletions
|
|
@ -1850,6 +1850,11 @@ worker_init(struct worker* worker, struct config_file *cfg,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
worker->env.mesh = mesh_create(&worker->daemon->mods, &worker->env);
|
worker->env.mesh = mesh_create(&worker->daemon->mods, &worker->env);
|
||||||
|
if(!worker->env.mesh) {
|
||||||
|
log_err("malloc failure");
|
||||||
|
worker_delete(worker);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
/* Pass on daemon variables that we would need in the mesh area */
|
/* Pass on daemon variables that we would need in the mesh area */
|
||||||
worker->env.mesh->use_response_ip = worker->daemon->use_response_ip;
|
worker->env.mesh->use_response_ip = worker->daemon->use_response_ip;
|
||||||
worker->env.mesh->use_rpz = worker->daemon->use_rpz;
|
worker->env.mesh->use_rpz = worker->daemon->use_rpz;
|
||||||
|
|
@ -1860,6 +1865,11 @@ worker_init(struct worker* worker, struct config_file *cfg,
|
||||||
worker->env.kill_sub = &mesh_state_delete;
|
worker->env.kill_sub = &mesh_state_delete;
|
||||||
worker->env.detect_cycle = &mesh_detect_cycle;
|
worker->env.detect_cycle = &mesh_detect_cycle;
|
||||||
worker->env.scratch_buffer = sldns_buffer_new(cfg->msg_buffer_size);
|
worker->env.scratch_buffer = sldns_buffer_new(cfg->msg_buffer_size);
|
||||||
|
if(!worker->env.scratch_buffer) {
|
||||||
|
log_err("malloc failure");
|
||||||
|
worker_delete(worker);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if(!(worker->env.fwds = forwards_create()) ||
|
if(!(worker->env.fwds = forwards_create()) ||
|
||||||
!forwards_apply_cfg(worker->env.fwds, cfg)) {
|
!forwards_apply_cfg(worker->env.fwds, cfg)) {
|
||||||
log_err("Could not set forward zones");
|
log_err("Could not set forward zones");
|
||||||
|
|
@ -1914,10 +1924,6 @@ worker_init(struct worker* worker, struct config_file *cfg,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* USE_DNSTAP */
|
#endif /* USE_DNSTAP */
|
||||||
if(!worker->env.mesh || !worker->env.scratch_buffer) {
|
|
||||||
worker_delete(worker);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
worker_mem_report(worker, NULL);
|
worker_mem_report(worker, NULL);
|
||||||
/* if statistics enabled start timer */
|
/* if statistics enabled start timer */
|
||||||
if(worker->env.cfg->stat_interval > 0) {
|
if(worker->env.cfg->stat_interval > 0) {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
4 May 2021: George
|
4 May 2021: George
|
||||||
- Fix for #367: only attempt to get the interface for queries that are no
|
- Fix for #367: only attempt to get the interface for queries that are no
|
||||||
longer on the tcp_waiting_list.
|
longer on the tcp_waiting_list.
|
||||||
|
- Add more logging for out-of-memory cases.
|
||||||
|
|
||||||
4 May 2021: Wouter
|
4 May 2021: Wouter
|
||||||
- Merge #478: Allow configuration of TCP timeout while waiting for
|
- Merge #478: Allow configuration of TCP timeout while waiting for
|
||||||
|
|
|
||||||
|
|
@ -825,9 +825,15 @@ log_dns_msg(const char* str, struct query_info* qinfo, struct reply_info* rep)
|
||||||
/* not particularly fast but flexible, make wireformat and print */
|
/* not particularly fast but flexible, make wireformat and print */
|
||||||
sldns_buffer* buf = sldns_buffer_new(65535);
|
sldns_buffer* buf = sldns_buffer_new(65535);
|
||||||
struct regional* region = regional_create();
|
struct regional* region = regional_create();
|
||||||
|
if(!(buf && region)) {
|
||||||
|
log_err("%s: log_dns_msg: out of memory", str);
|
||||||
|
sldns_buffer_free(buf);
|
||||||
|
regional_destroy(region);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if(!reply_info_encode(qinfo, rep, 0, rep->flags, buf, 0,
|
if(!reply_info_encode(qinfo, rep, 0, rep->flags, buf, 0,
|
||||||
region, 65535, 1, 0)) {
|
region, 65535, 1, 0)) {
|
||||||
log_info("%s: log_dns_msg: out of memory", str);
|
log_err("%s: log_dns_msg: out of memory", str);
|
||||||
} else {
|
} else {
|
||||||
char* s = sldns_wire2str_pkt(sldns_buffer_begin(buf),
|
char* s = sldns_wire2str_pkt(sldns_buffer_begin(buf),
|
||||||
sldns_buffer_limit(buf));
|
sldns_buffer_limit(buf));
|
||||||
|
|
|
||||||
|
|
@ -1048,6 +1048,10 @@ anchors_apply_cfg(struct val_anchors* anchors, struct config_file* cfg)
|
||||||
const char** zstr;
|
const char** zstr;
|
||||||
char* nm;
|
char* nm;
|
||||||
sldns_buffer* parsebuf = sldns_buffer_new(65535);
|
sldns_buffer* parsebuf = sldns_buffer_new(65535);
|
||||||
|
if(!parsebuf) {
|
||||||
|
log_err("malloc error in anchors_apply_cfg.");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if(cfg->insecure_lan_zones) {
|
if(cfg->insecure_lan_zones) {
|
||||||
for(zstr = as112_zones; *zstr; zstr++) {
|
for(zstr = as112_zones; *zstr; zstr++) {
|
||||||
if(!anchor_insert_insecure(anchors, *zstr)) {
|
if(!anchor_insert_insecure(anchors, *zstr)) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue