]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix memory leak in out-of-memory conditions of local zone add.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Fri, 6 May 2016 06:56:51 +0000 (06:56 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Fri, 6 May 2016 06:56:51 +0000 (06:56 +0000)
git-svn-id: file:///svn/unbound/trunk@3717 be551aaa-1e26-0410-a405-d3ace91eadb9

doc/Changelog
services/localzone.c

index e349e84a03e426221ec0210db8ad478e28af949f..bc84f0e51e9ce3a2ed945124e92aa3896fa4d871 100644 (file)
@@ -1,3 +1,6 @@
+6 May 2016: Wouter
+       - Fix memory leak in out-of-memory conditions of local zone add.
+
 29 April 2016: Wouter
        - Fix sldns with static checking fixes copied from getdns.
 
index bc4eb4573fad7be9537d27195f2e36ddeb953501..3c966243d165b70485e0824f3f6f9b39fa999f45 100644 (file)
@@ -172,6 +172,7 @@ lz_enter_zone_dname(struct local_zones* zones, uint8_t* nm, size_t len,
 {
        struct local_zone* z = local_zone_create(nm, len, labs, t, c);
        if(!z) {
+               free(nm);
                log_err("out of memory");
                return NULL;
        }
@@ -1275,7 +1276,10 @@ struct local_zone* local_zones_add_zone(struct local_zones* zones,
 {
        /* create */
        struct local_zone* z = local_zone_create(name, len, labs, tp, dclass);
-       if(!z) return NULL;
+       if(!z) {
+               free(name);
+               return NULL;
+       }
        lock_rw_wrlock(&z->lock);
 
        /* find the closest parent */