mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-20 10:12:15 +01:00
Switch over to tor_strtok_r instead of strtok_r.
This commit is contained in:
parent
cb477f9cc0
commit
9e1fe29beb
@ -269,9 +269,9 @@ extern const char TOR_TOLOWER_TABLE[];
|
||||
|
||||
char *tor_strtok_r_impl(char *str, const char *sep, char **lasts);
|
||||
#ifdef HAVE_STRTOK_R
|
||||
#define tor_strok_r(str, sep, lasts) strtok_r(str, sep, lasts)
|
||||
#define tor_strtok_r(str, sep, lasts) strtok_r(str, sep, lasts)
|
||||
#else
|
||||
#define tor_strok_r(str, sep, lasts) tor_strtok_r_impl(str, sep, lasts)
|
||||
#define tor_strtok_r(str, sep, lasts) tor_strtok_r_impl(str, sep, lasts)
|
||||
#endif
|
||||
|
||||
#ifdef MS_WINDOWS
|
||||
|
@ -2224,22 +2224,6 @@ router_clear_status_flags(routerinfo_t *router)
|
||||
router->is_bad_exit = router->is_bad_directory = 0;
|
||||
}
|
||||
|
||||
#ifndef HAVE_STRTOK_R
|
||||
/*
|
||||
* XXX-MP: If a system lacks strtok_r and we use a non-reentrant strtok,
|
||||
* we may introduce odd bugs if we call a codepath that also uses strtok
|
||||
* and resets its internal state. Do we want to abandon use of strtok
|
||||
* entirely for this reason? Roger mentioned smartlist_split and
|
||||
* eat_whitespace() as alternatives.
|
||||
*/
|
||||
static char *
|
||||
strtok_r(char *s, const char *delim, char **state)
|
||||
{
|
||||
(void)state;
|
||||
return strtok(s, delim);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Helper function to parse out a line in the measured bandwidth file
|
||||
* into a measured_bw_line_t output structure. Returns -1 on failure
|
||||
@ -2253,7 +2237,7 @@ measured_bw_line_parse(measured_bw_line_t *out, const char *orig_line)
|
||||
int got_bw = 0;
|
||||
int got_node_id = 0;
|
||||
char *strtok_state; /* lame sauce d'jour */
|
||||
cp = strtok_r(cp, " \t", &strtok_state);
|
||||
cp = tor_strtok_r(cp, " \t", &strtok_state);
|
||||
|
||||
if (!cp) {
|
||||
log_warn(LD_DIRSERV, "Invalid line in bandwidth file: %s",
|
||||
@ -2308,7 +2292,7 @@ measured_bw_line_parse(measured_bw_line_t *out, const char *orig_line)
|
||||
strncpy(out->node_hex, cp, sizeof(out->node_hex));
|
||||
got_node_id=1;
|
||||
}
|
||||
} while ((cp = strtok_r(NULL, " \t", &strtok_state)));
|
||||
} while ((cp = tor_strtok_r(NULL, " \t", &strtok_state)));
|
||||
|
||||
if (got_bw && got_node_id) {
|
||||
tor_free(line);
|
||||
|
@ -2889,14 +2889,6 @@ evdns_resolv_set_defaults(int flags) {
|
||||
if (flags & DNS_OPTION_NAMESERVERS) evdns_nameserver_ip_add("127.0.0.1");
|
||||
}
|
||||
|
||||
#ifndef HAVE_STRTOK_R
|
||||
static char *
|
||||
strtok_r(char *s, const char *delim, char **state) {
|
||||
(void)state;
|
||||
return strtok(s, delim);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* helper version of atoi which returns -1 on error */
|
||||
static int
|
||||
strtoint(const char *const str) {
|
||||
@ -2973,9 +2965,9 @@ static void
|
||||
resolv_conf_parse_line(char *const start, int flags) {
|
||||
char *strtok_state;
|
||||
static const char *const delims = " \t";
|
||||
#define NEXT_TOKEN strtok_r(NULL, delims, &strtok_state)
|
||||
#define NEXT_TOKEN tor_strtok_r(NULL, delims, &strtok_state)
|
||||
|
||||
char *const first_token = strtok_r(start, delims, &strtok_state);
|
||||
char *const first_token = tor_strtok_r(start, delims, &strtok_state);
|
||||
if (!first_token) return;
|
||||
|
||||
if (!strcmp(first_token, "nameserver") && (flags & DNS_OPTION_NAMESERVERS)) {
|
||||
|
Loading…
Reference in New Issue
Block a user