From a4a5bfaa2fa39a3b1cbeacddd4eb9fb99ad9437b Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Tue, 5 Jun 2018 07:06:19 +0000 Subject: [PATCH] - Fix crash if ratelimit taken into use with unbound-control instead of with unbound.conf. git-svn-id: file:///svn/unbound/trunk@4711 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 4 ++++ services/cache/infra.c | 28 +++++++++++++--------------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 97678d6c6..f7ce2a1e6 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +5 June 2018: Wouter + - Fix crash if ratelimit taken into use with unbound-control + instead of with unbound.conf. + 4 June 2018: Wouter - Fix deadlock caused by incoming notify for auth-zone. - tag for 1.7.2rc1 diff --git a/services/cache/infra.c b/services/cache/infra.c index 734b7969e..f4320306d 100644 --- a/services/cache/infra.c +++ b/services/cache/infra.c @@ -232,22 +232,20 @@ infra_create(struct config_file* cfg) infra->host_ttl = cfg->host_ttl; name_tree_init(&infra->domain_limits); infra_dp_ratelimit = cfg->ratelimit; - if(cfg->ratelimit != 0) { - infra->domain_rates = slabhash_create(cfg->ratelimit_slabs, - INFRA_HOST_STARTSIZE, cfg->ratelimit_size, - &rate_sizefunc, &rate_compfunc, &rate_delkeyfunc, - &rate_deldatafunc, NULL); - if(!infra->domain_rates) { - infra_delete(infra); - return NULL; - } - /* insert config data into ratelimits */ - if(!infra_ratelimit_cfg_insert(infra, cfg)) { - infra_delete(infra); - return NULL; - } - name_tree_init_parents(&infra->domain_limits); + infra->domain_rates = slabhash_create(cfg->ratelimit_slabs, + INFRA_HOST_STARTSIZE, cfg->ratelimit_size, + &rate_sizefunc, &rate_compfunc, &rate_delkeyfunc, + &rate_deldatafunc, NULL); + if(!infra->domain_rates) { + infra_delete(infra); + return NULL; + } + /* insert config data into ratelimits */ + if(!infra_ratelimit_cfg_insert(infra, cfg)) { + infra_delete(infra); + return NULL; } + name_tree_init_parents(&infra->domain_limits); infra_ip_ratelimit = cfg->ip_ratelimit; infra->client_ip_rates = slabhash_create(cfg->ip_ratelimit_slabs, INFRA_HOST_STARTSIZE, cfg->ip_ratelimit_size, &ip_rate_sizefunc, -- 2.47.3