mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-20 10:12:15 +01:00
Merge remote-tracking branch 'origin/maint-0.2.5'
This commit is contained in:
commit
2e607ff519
5
changes/13295
Normal file
5
changes/13295
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
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.
|
@ -1297,6 +1297,18 @@ HT_GENERATE2(getaddrinfo_cache, cached_getaddrinfo_item_t, node,
|
|||||||
cached_getaddrinfo_items_eq,
|
cached_getaddrinfo_items_eq,
|
||||||
0.6, tor_reallocarray_, tor_free_)
|
0.6, tor_reallocarray_, 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
|
int
|
||||||
sandbox_getaddrinfo(const char *name, const char *servname,
|
sandbox_getaddrinfo(const char *name, const char *servname,
|
||||||
const struct addrinfo *hints,
|
const struct addrinfo *hints,
|
||||||
@ -1305,6 +1317,10 @@ sandbox_getaddrinfo(const char *name, const char *servname,
|
|||||||
int err;
|
int err;
|
||||||
struct cached_getaddrinfo_item_t search, *item;
|
struct cached_getaddrinfo_item_t search, *item;
|
||||||
|
|
||||||
|
if (sandbox_getaddrinfo_cache_disabled) {
|
||||||
|
return getaddrinfo(name, NULL, hints, res);
|
||||||
|
}
|
||||||
|
|
||||||
if (servname != NULL) {
|
if (servname != NULL) {
|
||||||
log_warn(LD_BUG, "called with non-NULL servname");
|
log_warn(LD_BUG, "called with non-NULL servname");
|
||||||
return EAI_NONAME;
|
return EAI_NONAME;
|
||||||
@ -1718,5 +1734,10 @@ sandbox_is_active(void)
|
|||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
sandbox_disable_getaddrinfo_cache(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -176,5 +176,7 @@ int sandbox_init(sandbox_cfg_t* cfg);
|
|||||||
/** Return true iff the sandbox is turned on. */
|
/** Return true iff the sandbox is turned on. */
|
||||||
int sandbox_is_active(void);
|
int sandbox_is_active(void);
|
||||||
|
|
||||||
|
void sandbox_disable_getaddrinfo_cache(void);
|
||||||
|
|
||||||
#endif /* SANDBOX_H_ */
|
#endif /* SANDBOX_H_ */
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#include "../common/util.h"
|
#include "../common/util.h"
|
||||||
#include "address.h"
|
#include "address.h"
|
||||||
#include "../common/torlog.h"
|
#include "../common/torlog.h"
|
||||||
|
#include "sandbox.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.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));
|
log_severity_list_t *s = tor_malloc_zero(sizeof(log_severity_list_t));
|
||||||
|
|
||||||
init_logging();
|
init_logging();
|
||||||
|
sandbox_disable_getaddrinfo_cache();
|
||||||
|
|
||||||
arg = &argv[1];
|
arg = &argv[1];
|
||||||
n_args = argc-1;
|
n_args = argc-1;
|
||||||
|
Loading…
Reference in New Issue
Block a user