aboutsummaryrefslogtreecommitdiff
path: root/src/common/address.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-05-22 17:39:36 -0400
committerNick Mathewson <nickm@torproject.org>2014-05-22 17:39:36 -0400
commite425fc78045f99725d256956acc7360ed71bfaa5 (patch)
tree99ae8b3c82aa3f5641f264cd7a4b84f90152c827 /src/common/address.c
parent1a73e178011d24ad2ef252dab7256d7c4fa94a64 (diff)
downloadtor-e425fc78045f99725d256956acc7360ed71bfaa5.tar.gz
tor-e425fc78045f99725d256956acc7360ed71bfaa5.zip
sandbox: revamp sandbox_getaddrinfo cacheing
The old cache had problems: * It needed to be manually preloaded. (It didn't remember any address you didn't tell it to remember) * It was AF_INET only. * It looked at its cache even if the sandbox wasn't turned on. * It couldn't remember errors. * It had some memory management problems. (You can't use memcpy to copy an addrinfo safely; it has pointers in.) This patch fixes those issues, and moves to a hash table. Fixes bug 11970; bugfix on 0.2.5.1-alpha.
Diffstat (limited to 'src/common/address.c')
-rw-r--r--src/common/address.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/common/address.c b/src/common/address.c
index 2825b123da..29d4c0447e 100644
--- a/src/common/address.c
+++ b/src/common/address.c
@@ -264,7 +264,7 @@ tor_addr_lookup(const char *name, uint16_t family, tor_addr_t *addr)
&((struct sockaddr_in6*)best->ai_addr)->sin6_addr);
result = 0;
}
- freeaddrinfo(res);
+ sandbox_freeaddrinfo(res);
return result;
}
return (err == EAI_AGAIN) ? 1 : -1;