[tor-commits] [tor/master] Fix a hard-to-trigger memory leak in launch_resolve

nickm at torproject.org nickm at torproject.org
Wed May 30 15:13:40 UTC 2012


commit 4c4dd505be30de996659f9d3496fc88956fcfbf6
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri May 18 12:21:46 2012 -0400

    Fix a hard-to-trigger memory leak in launch_resolve
    
    To hit this leak, you need to be a relay that gets a RESOLVE request
    or an exit node getting a BEGIN or RESOLVE request.  You must either
    have unconfigured (and unconfigurable) nameservers, or you must have
    somehow set DisableNetwork after a network request arrived but
    before you managed to process it.
    
    So, I doubt this is reached often.  Still, a leak's a leak.  Fix for
    bug 5916; bugfix on 0.2.3.9-alpha and 0.1.2.1-alpha.
---
 changes/bug5916 |    6 ++++++
 src/or/dns.c    |    4 +++-
 2 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/changes/bug5916 b/changes/bug5916
new file mode 100644
index 0000000..0b2ea5d
--- /dev/null
+++ b/changes/bug5916
@@ -0,0 +1,6 @@
+  o Minor bugfixes:
+    - Fix a memory leak when trying to launch a DNS request when the
+      network is disabled or the nameservers are unconfigurable.  Fix
+      for bug 5916; bugfix on Tor 0.1.2.1-alpha (for the
+      unconfigurable namesrever case) and on 0.2.3.9-alpha (for the
+      DisableNetwork case).
diff --git a/src/or/dns.c b/src/or/dns.c
index 2b7d3e3..b349f02 100644
--- a/src/or/dns.c
+++ b/src/or/dns.c
@@ -1389,7 +1389,7 @@ evdns_callback(int result, char type, int count, int ttl, void *addresses,
 static int
 launch_resolve(edge_connection_t *exitconn)
 {
-  char *addr = tor_strdup(exitconn->_base.address);
+  char *addr;
   struct evdns_request *req = NULL;
   tor_addr_t a;
   int r;
@@ -1408,6 +1408,8 @@ launch_resolve(edge_connection_t *exitconn)
     }
   }
 
+  addr = tor_strdup(exitconn->_base.address);
+
   r = tor_addr_parse_PTR_name(
                             &a, exitconn->_base.address, AF_UNSPEC, 0);
 





More information about the tor-commits mailing list