Skip to content
Snippets Groups Projects
Commit e1a25f0c authored by Nick Mathewson's avatar Nick Mathewson :game_die:
Browse files

Merge branch 'bug13295_v2_025' into maint-0.2.5

parents 87576e82 09951bea
No related branches found
No related tags found
No related merge requests found
o Minor bugfixes:
- Disable sandbox name resolver cache when running tor-resolve:
tor-resolve doesn't use the sandbox code, and turning it on was
breaking attempts to do tor-resolve on a non-default server on
Linux. Fixes bug 13295; bugfix on 0.2.5.3-alpha.
......@@ -1385,6 +1385,18 @@ HT_GENERATE(getaddrinfo_cache, cached_getaddrinfo_item_t, node,
cached_getaddrinfo_items_eq,
0.6, tor_malloc_, tor_realloc_, tor_free_);
/** If true, don't try to cache getaddrinfo results. */
static int sandbox_getaddrinfo_cache_disabled = 0;
/** Tell the sandbox layer not to try to cache getaddrinfo results. Used as in
* tor-resolve, when we have no intention of initializing crypto or of
* installing the sandbox.*/
void
sandbox_disable_getaddrinfo_cache(void)
{
sandbox_getaddrinfo_cache_disabled = 1;
}
int
sandbox_getaddrinfo(const char *name, const char *servname,
const struct addrinfo *hints,
......@@ -1393,6 +1405,10 @@ sandbox_getaddrinfo(const char *name, const char *servname,
int err;
struct cached_getaddrinfo_item_t search, *item;
if (sandbox_getaddrinfo_cache_disabled) {
return getaddrinfo(name, NULL, hints, res);
}
if (servname != NULL) {
log_warn(LD_BUG, "called with non-NULL servname");
return EAI_NONAME;
......@@ -1834,5 +1850,10 @@ sandbox_is_active(void)
{
return 0;
}
void
sandbox_disable_getaddrinfo_cache(void)
{
}
#endif
......@@ -208,5 +208,7 @@ int sandbox_init(sandbox_cfg_t* cfg);
/** Return true iff the sandbox is turned on. */
int sandbox_is_active(void);
void sandbox_disable_getaddrinfo_cache(void);
#endif /* SANDBOX_H_ */
......@@ -8,6 +8,7 @@
#include "../common/util.h"
#include "address.h"
#include "../common/torlog.h"
#include "sandbox.h"
#include <stdio.h>
#include <stdlib.h>
......@@ -344,6 +345,7 @@ main(int argc, char **argv)
log_severity_list_t *s = tor_malloc_zero(sizeof(log_severity_list_t));
init_logging();
sandbox_disable_getaddrinfo_cache();
arg = &argv[1];
n_args = argc-1;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment