]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix #1301: memory leak in respip and tests.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Fri, 16 Jun 2017 07:27:49 +0000 (07:27 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Fri, 16 Jun 2017 07:27:49 +0000 (07:27 +0000)
git-svn-id: file:///svn/unbound/trunk@4228 be551aaa-1e26-0410-a405-d3ace91eadb9

doc/Changelog
respip/respip.c
testcode/unitmain.c

index f99a0481f98d73758ea4e0e3724a5d68965465c2..6559caa13117ec7571d13e2da2f3b961b31f34a5 100644 (file)
@@ -1,3 +1,6 @@
+16 June 2017: Wouter
+       - Fix #1301: memory leak in respip and tests.
+
 15 June 2017: Wouter
        - Fix stub zone queries leaking to the internet for
          harden-referral-path ns checks.
index d7132511122a33258fb6a8c597c5aee18631586c..2e9313f271bb73e08546cf1622f00f415ae4949a 100644 (file)
@@ -261,6 +261,7 @@ respip_enter_rr(struct regional* region, struct resp_addr* raddr,
                log_err("bad response-ip-data: %s", rrstr);
                return 0;
        }
+       free(nm);
        sa = (struct sockaddr*)&raddr->node.addr;
        if (rrtype == LDNS_RR_TYPE_CNAME && raddr->data) {
                log_err("CNAME response-ip data (%s) can not co-exist with other "
index 9048942dbb3b7a4cc9006009c084d647905b6358..1c4a28e36c1c047c071da22c55282c04c7540009 100644 (file)
@@ -627,6 +627,9 @@ respip_conf_actions_test(void)
        }
        unit_assert(respip_global_apply_cfg(set, &cfg));
        verify_respip_set_actions(set, config_response_ip, clen);
+
+       respip_set_delete(set);
+       config_deldblstrlist(cfg.respip_actions);
 }
 
 /** Per-view respip actions test; apply raw configuration with two views
@@ -694,6 +697,12 @@ respip_view_conf_actions_test(void)
        unit_assert(v);
        verify_respip_set_actions(v->respip_set, config_response_ip_view2, clen2);
        lock_rw_unlock(&v->lock);
+
+       views_delete(views);
+       free(cv1->name);
+       free(cv1);
+       free(cv2->name);
+       free(cv2);
 }
 
 typedef struct addr_data {char* ip; char* data;} addr_data_t;
@@ -778,6 +787,8 @@ respip_conf_data_test(void)
        verify_rrset(set, "192.0.1.0/24", "11.12.13.14", 1, LDNS_RR_TYPE_A);
        verify_rrset(set, "192.0.2.0/24", "www.example.com", 0, LDNS_RR_TYPE_CNAME);
        verify_rrset(set, "2001:db8:1::/48", "2001:db8:1::2:1", 0, LDNS_RR_TYPE_AAAA);
+
+       respip_set_delete(set);
 }
 
 /** Test per-view respip redirect w/ data directives */
@@ -814,6 +825,10 @@ respip_view_conf_data_test(void)
                0, LDNS_RR_TYPE_CNAME);
        verify_rrset(v->respip_set, "2001:db8:1::/48", "2001:db8:1::2:1",
                0, LDNS_RR_TYPE_AAAA);
+
+       views_delete(views);
+       free(cv->name);
+       free(cv);
 }
 
 /** respip unit tests */