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.
--- /dev/null
+ 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).
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;
}
}
+ addr = tor_strdup(exitconn->_base.address);
+
r = tor_addr_parse_PTR_name(
&a, exitconn->_base.address, AF_UNSPEC, 0);