]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Free view config elements.
authorRalph Dolmans <ralph@nlnetlabs.nl>
Wed, 12 Oct 2016 10:09:42 +0000 (10:09 +0000)
committerRalph Dolmans <ralph@nlnetlabs.nl>
Wed, 12 Oct 2016 10:09:42 +0000 (10:09 +0000)
git-svn-id: file:///svn/unbound/trunk@3881 be551aaa-1e26-0410-a405-d3ace91eadb9

doc/Changelog
services/view.c
util/config_file.c

index 1c69d1125ec263a38d6ccc2615a2698c19f43ba7..8b45447d9d5606ce2b6b48d302f3d937f2dcd182 100644 (file)
@@ -1,3 +1,6 @@
+12 October 2016: Ralph
+       - Free view config elements.
+
 11 October 2016: Ralph
        - Added qname-minimisation-strict config option.
        - iana portlist update.
index dbfd9284049a09a6f1fb8c7b0edffe48671138f1..1efe485880542e6fe0b6d02b12a0b59c52d40570 100644 (file)
@@ -166,6 +166,12 @@ views_apply_cfg(struct views* vs, struct config_file* cfg)
                                lock_rw_unlock(&v->lock);
                                return 0;
                        }
+                       /* local_zones, local_zones_nodefault and local_data 
+                        * are free'd from config_view by local_zones_apply_cfg.
+                        * Set pointers to NULL. */
+                       cv->local_zones = NULL;
+                       cv->local_data = NULL;
+                       cv->local_zones_nodefault = NULL;
                }
                lock_rw_unlock(&v->lock);
        }
index cce33de5ab034bb69eff6dd95f27748b706dc222..f3c0b1ebe066a5899a401f07d2ec1bed62cd03b5 100644 (file)
@@ -170,6 +170,7 @@ config_create(void)
        cfg->out_ifs = NULL;
        cfg->stubs = NULL;
        cfg->forwards = NULL;
+       cfg->views = NULL;
        cfg->acls = NULL;
        cfg->harden_short_bufsize = 0;
        cfg->harden_large_queries = 0;
@@ -993,6 +994,8 @@ config_delview(struct config_view* p)
        if(!p) return;
        free(p->name);
        config_deldblstrlist(p->local_zones);
+       config_delstrlist(p->local_zones_nodefault);
+       config_delstrlist(p->local_data);
        free(p);
 }
 
@@ -1048,6 +1051,7 @@ config_delete(struct config_file* cfg)
        config_del_strarray(cfg->out_ifs, cfg->num_out_ifs);
        config_delstubs(cfg->stubs);
        config_delstubs(cfg->forwards);
+       config_delviews(cfg->views);
        config_delstrlist(cfg->donotqueryaddrs);
        config_delstrlist(cfg->root_hints);
        free(cfg->identity);