summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-12-30 12:35:01 -0500
committerNick Mathewson <nickm@torproject.org>2014-12-30 12:35:01 -0500
commit6e689aed756fb3d96fa70e9138aedc93be8f35de (patch)
tree4494619538bc0075a62a03da535c0da390169742
parentb3b840443ddbf126c5a9c25533986e9b9ea33585 (diff)
downloadtor-6e689aed756fb3d96fa70e9138aedc93be8f35de.tar.gz
tor-6e689aed756fb3d96fa70e9138aedc93be8f35de.zip
Fix a memory leak in tor-resolve
Resolves bug 14050
-rw-r--r--ChangeLog2
-rw-r--r--src/common/sandbox.c7
-rw-r--r--src/common/sandbox.h2
3 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 4b7f35f546..b125d9d853 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -145,6 +145,8 @@ Changes in version 0.2.6.2-alpha - 2014-12-??
- Make transparent proxy support work along with the seccomp2
sandbox. Fixes part of bug 13808; bugfix on 0.2.5.1-alpha. Patch
by Francisco Blas Izquierdo Riera.
+ - Fix a memory leak in tor-resolve when running with the sandbox
+ enabled. Fixes bug 14050; bugfix on 0.2.5.9-rc.
o Minor bugfixes (logging):
- Downgrade warnings about RSA signature failures to info log level.
diff --git a/src/common/sandbox.c b/src/common/sandbox.c
index b1c2a09f14..a06d38608f 100644
--- a/src/common/sandbox.c
+++ b/src/common/sandbox.c
@@ -1335,6 +1335,13 @@ sandbox_disable_getaddrinfo_cache(void)
sandbox_getaddrinfo_cache_disabled = 1;
}
+void
+sandbox_freeaddrinfo(struct addrinfo *ai)
+{
+ if (sandbox_getaddrinfo_cache_disabled)
+ freeaddrinfo(ai);
+}
+
int
sandbox_getaddrinfo(const char *name, const char *servname,
const struct addrinfo *hints,
diff --git a/src/common/sandbox.h b/src/common/sandbox.h
index ad001865a7..f1c99ac02d 100644
--- a/src/common/sandbox.h
+++ b/src/common/sandbox.h
@@ -115,7 +115,7 @@ struct addrinfo;
int sandbox_getaddrinfo(const char *name, const char *servname,
const struct addrinfo *hints,
struct addrinfo **res);
-#define sandbox_freeaddrinfo(addrinfo) ((void)0)
+void sandbox_freeaddrinfo(struct addrinfo *addrinfo);
void sandbox_free_getaddrinfo_cache(void);
#else
#define sandbox_getaddrinfo(name, servname, hints, res) \