summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2018-07-09 09:31:12 -0400
committerNick Mathewson <nickm@torproject.org>2018-07-09 09:31:12 -0400
commit03283c00d86f9affe9d369b3e0f116770d4e0ec6 (patch)
tree2f8f966591de6ce89b697f11d1332e4a6f598f16 /src
parent47859e11e505cd6c2437fb8006de44297b6b9d2f (diff)
parent439b528f25e29b572a7bd04bc1d5fcaee68f5796 (diff)
downloadtor-03283c00d86f9affe9d369b3e0f116770d4e0ec6.tar.gz
tor-03283c00d86f9affe9d369b3e0f116770d4e0ec6.zip
Merge remote-tracking branch 'rl1987/bug26525'
Diffstat (limited to 'src')
-rw-r--r--src/core/mainloop/main.c4
-rw-r--r--src/lib/net/address.c4
-rw-r--r--src/lib/net/resolve.c18
-rw-r--r--src/lib/net/resolve.h21
-rw-r--r--src/lib/sandbox/sandbox.c2
5 files changed, 23 insertions, 26 deletions
diff --git a/src/core/mainloop/main.c b/src/core/mainloop/main.c
index 4479367787..c5773ddfc1 100644
--- a/src/core/mainloop/main.c
+++ b/src/core/mainloop/main.c
@@ -3677,7 +3677,7 @@ tor_free_all(int postfork)
routerparse_free_all();
ext_orport_free_all();
control_free_all();
- sandbox_free_getaddrinfo_cache();
+ tor_free_getaddrinfo_cache();
protover_free_all();
bridges_free_all();
consdiffmgr_free_all();
@@ -3899,7 +3899,7 @@ init_addrinfo(void)
// host name to sandbox
gethostname(hname, sizeof(hname));
- sandbox_add_addrinfo(hname);
+ tor_add_addrinfo(hname);
}
static sandbox_cfg_t*
diff --git a/src/lib/net/address.c b/src/lib/net/address.c
index 10e38871ee..f3eddca7bb 100644
--- a/src/lib/net/address.c
+++ b/src/lib/net/address.c
@@ -277,7 +277,7 @@ tor_addr_lookup,(const char *name, uint16_t family, tor_addr_t *addr))
memset(&hints, 0, sizeof(hints));
hints.ai_family = family;
hints.ai_socktype = SOCK_STREAM;
- err = sandbox_getaddrinfo(name, NULL, &hints, &res);
+ err = tor_getaddrinfo(name, NULL, &hints, &res);
/* The check for 'res' here shouldn't be necessary, but it makes static
* analysis tools happy. */
if (!err && res) {
@@ -306,7 +306,7 @@ tor_addr_lookup,(const char *name, uint16_t family, tor_addr_t *addr))
&((struct sockaddr_in6*)best->ai_addr)->sin6_addr);
result = 0;
}
- sandbox_freeaddrinfo(res);
+ tor_freeaddrinfo(res);
return result;
}
return (err == EAI_AGAIN) ? 1 : -1;
diff --git a/src/lib/net/resolve.c b/src/lib/net/resolve.c
index fefd5cceb7..cbe368ccfb 100644
--- a/src/lib/net/resolve.c
+++ b/src/lib/net/resolve.c
@@ -121,16 +121,16 @@ sandbox_disable_getaddrinfo_cache(void)
}
void
-sandbox_freeaddrinfo(struct addrinfo *ai)
+tor_freeaddrinfo(struct addrinfo *ai)
{
if (sandbox_getaddrinfo_cache_disabled)
freeaddrinfo(ai);
}
int
-sandbox_getaddrinfo(const char *name, const char *servname,
- const struct addrinfo *hints,
- struct addrinfo **res)
+tor_getaddrinfo(const char *name, const char *servname,
+ const struct addrinfo *hints,
+ struct addrinfo **res)
{
int err;
struct cached_getaddrinfo_item_t search, *item;
@@ -191,7 +191,7 @@ sandbox_getaddrinfo(const char *name, const char *servname,
}
int
-sandbox_add_addrinfo(const char *name)
+tor_add_addrinfo(const char *name)
{
struct addrinfo *res;
struct addrinfo hints;
@@ -204,16 +204,16 @@ sandbox_add_addrinfo(const char *name)
hints.ai_family = families[i];
res = NULL;
- (void) sandbox_getaddrinfo(name, NULL, &hints, &res);
+ (void) tor_getaddrinfo(name, NULL, &hints, &res);
if (res)
- sandbox_freeaddrinfo(res);
+ tor_freeaddrinfo(res);
}
return 0;
}
void
-sandbox_free_getaddrinfo_cache(void)
+tor_free_getaddrinfo_cache(void)
{
cached_getaddrinfo_item_t **next, **item, *this;
@@ -229,7 +229,7 @@ sandbox_free_getaddrinfo_cache(void)
}
void
-sandbox_make_getaddrinfo_cache_active(void)
+tor_make_getaddrinfo_cache_active(void)
{
sandbox_getaddrinfo_is_active = 1;
}
diff --git a/src/lib/net/resolve.h b/src/lib/net/resolve.h
index a225be87fe..f2280ae7e8 100644
--- a/src/lib/net/resolve.h
+++ b/src/lib/net/resolve.h
@@ -22,27 +22,24 @@ MOCK_DECL(int,tor_lookup_hostname,(const char *name, uint32_t *addr));
struct addrinfo;
#ifdef USE_SANDBOX_GETADDRINFO
/** Pre-calls getaddrinfo in order to pre-record result. */
-int sandbox_add_addrinfo(const char *addr);
+int tor_add_addrinfo(const char *addr);
-// XXXX rename these. They are named as though they were sandbox-only,
-// XXXX but in fact they're the only allowed entry point to getaddrinfo.
-// XXXX They don't invoke the sandbox code; they only have an internal cache.
struct addrinfo;
/** Replacement for getaddrinfo(), using pre-recorded results. */
-int sandbox_getaddrinfo(const char *name, const char *servname,
+int tor_getaddrinfo(const char *name, const char *servname,
const struct addrinfo *hints,
struct addrinfo **res);
-void sandbox_freeaddrinfo(struct addrinfo *addrinfo);
-void sandbox_free_getaddrinfo_cache(void);
-void sandbox_make_getaddrinfo_cache_active(void);
+void tor_freeaddrinfo(struct addrinfo *addrinfo);
+void tor_free_getaddrinfo_cache(void);
+void tor_make_getaddrinfo_cache_active(void);
#else /* !(defined(USE_SANDBOX_GETADDRINFO)) */
-#define sandbox_getaddrinfo(name, servname, hints, res) \
+#define tor_getaddrinfo(name, servname, hints, res) \
getaddrinfo((name),(servname), (hints),(res))
-#define sandbox_add_addrinfo(name) \
+#define tor_add_addrinfo(name) \
((void)(name))
-#define sandbox_freeaddrinfo(addrinfo) \
+#define tor_freeaddrinfo(addrinfo) \
freeaddrinfo((addrinfo))
-#define sandbox_free_getaddrinfo_cache()
+#define tor_free_getaddrinfo_cache()
#endif /* defined(USE_SANDBOX_GETADDRINFO) */
void sandbox_disable_getaddrinfo_cache(void);
diff --git a/src/lib/sandbox/sandbox.c b/src/lib/sandbox/sandbox.c
index e49cbd863a..25dd6d1c26 100644
--- a/src/lib/sandbox/sandbox.c
+++ b/src/lib/sandbox/sandbox.c
@@ -1552,7 +1552,7 @@ install_syscall_filter(sandbox_cfg_t* cfg)
// marking the sandbox as active
sandbox_active = 1;
- sandbox_make_getaddrinfo_cache_active();
+ tor_make_getaddrinfo_cache_active();
end:
seccomp_release(ctx);