From: W.C.A. Wijngaards Date: Mon, 18 Nov 2019 10:21:13 +0000 (+0100) Subject: * Fix memory leak in examples/ldns-testns handle_tcp routine. X-Git-Tag: 1.8.0-rc.1~82^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ea926ab90860e9a95c70751dc405e4ef859e2abf;p=thirdparty%2Fldns.git * Fix memory leak in examples/ldns-testns handle_tcp routine. --- diff --git a/Changelog b/Changelog index 546a4e04..86d8f91c 100644 --- a/Changelog +++ b/Changelog @@ -3,6 +3,7 @@ rr_frm_str_internal reported by pokerfacett. * bugfix #51: Heap Out-of-bound Read vulnerability in ldns_nsec3_salt_data reported by pokerfacett. + * Fix memory leak in examples/ldns-testns handle_tcp routine. 1.7.1 2019-07-26 * bugfix: Manage verification paths for OpenSSL >= 1.1.0 diff --git a/examples/ldns-testpkts.c b/examples/ldns-testpkts.c index c67541d0..05a54c58 100644 --- a/examples/ldns-testpkts.c +++ b/examples/ldns-testpkts.c @@ -834,7 +834,7 @@ handle_query(uint8_t* inbuf, ssize_t inlen, struct entry* entries, int* count, status = ldns_wire2pkt(&query_pkt, inbuf, (size_t)inlen); if (status != LDNS_STATUS_OK) { verbose(1, "Got bad packet: %s\n", ldns_get_errorstr_by_id(status)); - ldns_rdf_free(stop_command); + ldns_rdf_deep_free(stop_command); return; } @@ -855,7 +855,7 @@ handle_query(uint8_t* inbuf, ssize_t inlen, struct entry* entries, int* count, if(!entry || !entry->reply_list) { verbose(1, "no answer packet for this query, no reply.\n"); ldns_pkt_free(query_pkt); - ldns_rdf_free(stop_command); + ldns_rdf_deep_free(stop_command); return; } for(p = entry->reply_list; p; p = p->next) @@ -874,7 +874,7 @@ handle_query(uint8_t* inbuf, ssize_t inlen, struct entry* entries, int* count, if (status != LDNS_STATUS_OK) { verbose(1, "Error creating answer: %s\n", ldns_get_errorstr_by_id(status)); ldns_pkt_free(query_pkt); - ldns_rdf_free(stop_command); + ldns_rdf_deep_free(stop_command); return; } ldns_pkt_free(answer_pkt); @@ -899,7 +899,7 @@ handle_query(uint8_t* inbuf, ssize_t inlen, struct entry* entries, int* count, if (status != LDNS_STATUS_OK) { verbose(1, "Error creating answer: %s\n", ldns_get_errorstr_by_id(status)); ldns_pkt_free(query_pkt); - ldns_rdf_free(stop_command); + ldns_rdf_deep_free(stop_command); return; } ldns_pkt_free(answer_pkt); @@ -922,7 +922,7 @@ handle_query(uint8_t* inbuf, ssize_t inlen, struct entry* entries, int* count, answer_size = 0; } ldns_pkt_free(query_pkt); - ldns_rdf_free(stop_command); + ldns_rdf_deep_free(stop_command); } /** delete the list of reply packets */