]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix for memory leak (about 20 bytes when a tcp or udp send
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Sat, 24 Dec 2011 11:27:53 +0000 (11:27 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Sat, 24 Dec 2011 11:27:53 +0000 (11:27 +0000)
operation towards authority servers failed, takes about 50.000
such failures to leak one Mb, such failures are also
usually logged), reported by Robert Fleischmann.

git-svn-id: file:///svn/unbound/trunk@2578 be551aaa-1e26-0410-a405-d3ace91eadb9

doc/Changelog
services/outside_network.c

index 70d4a629d1a77d256d5f01cc9e52abbb6d1c5a1e..49c23f0b64a1bc247cb653014dc48d6e8039dfe9 100644 (file)
@@ -1,3 +1,9 @@
+24 December 2011: Wouter
+       - Fix for memory leak (about 20 bytes when a tcp or udp send operation
+         towards authority servers failed, takes about 50.000 such failures to
+         leak one Mb, such failures are also usually logged), reported by
+         Robert Fleischmann.
+
 19 December 2011: Wouter
        - Fix for VU#209659 CVE-2011-4528: Unbound denial of service
          vulnerabilities from nonstandard redirection and denial of existence
index fef3c002fd09d80e52e9fb9532044400120e2004..7fd408e79872ad7d0f5d8e0f2bec196e953bc03c 100644 (file)
@@ -1824,6 +1824,7 @@ outnet_serviced_query(struct outside_network* outnet,
                        if(!serviced_udp_send(sq, buff)) {
                                (void)rbtree_delete(outnet->serviced, sq);
                                free(sq->qbuf);
+                               free(sq->zone);
                                free(sq);
                                free(cb);
                                return NULL;
@@ -1832,6 +1833,7 @@ outnet_serviced_query(struct outside_network* outnet,
                        if(!serviced_tcp_send(sq, buff)) {
                                (void)rbtree_delete(outnet->serviced, sq);
                                free(sq->qbuf);
+                               free(sq->zone);
                                free(sq);
                                free(cb);
                                return NULL;