From: Wouter Wijngaards Date: Fri, 16 Jun 2017 07:27:49 +0000 (+0000) Subject: - Fix #1301: memory leak in respip and tests. X-Git-Tag: release-1.6.4rc1~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=20f8dafcd42efacbdf986afc69a362718721d64e;p=thirdparty%2Funbound.git - Fix #1301: memory leak in respip and tests. git-svn-id: file:///svn/unbound/trunk@4228 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/doc/Changelog b/doc/Changelog index f99a0481f..6559caa13 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -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. diff --git a/respip/respip.c b/respip/respip.c index d71325111..2e9313f27 100644 --- a/respip/respip.c +++ b/respip/respip.c @@ -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 " diff --git a/testcode/unitmain.c b/testcode/unitmain.c index 9048942db..1c4a28e36 100644 --- a/testcode/unitmain.c +++ b/testcode/unitmain.c @@ -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 */