diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2020-10-06 02:36:47 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2020-10-06 02:36:47 +0200 |
commit | 2496616b0a8d1c80cd1416b73a4847b59b9f969a (patch) | |
tree | dc52a8f9bbbf33d507ecf0b808614b7923786567 /networking | |
parent | 535a509846be5087ddd0d6e8fc6399f919942639 (diff) | |
download | busybox-2496616b0a8d1c80cd1416b73a4847b59b9f969a.tar.gz |
avoid using strok - eliminates use of hidden global variable
function old new delta
udhcp_str2optset 616 650 +34
setpriv_main 950 975 +25
switch_root_main 688 706 +18
parse 958 970 +12
getopt_main 622 628 +6
parse_resolvconf 302 306 +4
mpstat_main 1139 1142 +3
static.p 4 - -4
cdcmd 717 702 -15
strtok 148 - -148
------------------------------------------------------------------------------
(add/remove: 0/3 grow/shrink: 7/1 up/down: 102/-167) Total: -65 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'networking')
-rw-r--r-- | networking/nslookup.c | 5 | ||||
-rw-r--r-- | networking/udhcp/common.c | 10 |
2 files changed, 8 insertions, 7 deletions
diff --git a/networking/nslookup.c b/networking/nslookup.c index c43e60558..759de5c83 100644 --- a/networking/nslookup.c +++ b/networking/nslookup.c @@ -703,12 +703,13 @@ static void parse_resolvconf(void) while (fgets(line, sizeof(line), resolv)) { char *p, *arg; + char *tokstate; - p = strtok(line, " \t\n"); + p = strtok_r(line, " \t\n", &tokstate); if (!p) continue; dbg("resolv_key:'%s'\n", p); - arg = strtok(NULL, "\n"); + arg = strtok_r(NULL, "\n", &tokstate); dbg("resolv_arg:'%s'\n", arg); if (!arg) continue; diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c index 20d843bab..4bc719001 100644 --- a/networking/udhcp/common.c +++ b/networking/udhcp/common.c @@ -526,7 +526,7 @@ int FAST_FUNC udhcp_str2optset(const char *const_str, void *arg, /* Cheat, the only *const* str possible is "" */ str = (char *) const_str; - opt = strtok(str, " \t=:"); + opt = strtok_r(str, " \t=:", &str); if (!opt) return 0; @@ -550,10 +550,10 @@ int FAST_FUNC udhcp_str2optset(const char *const_str, void *arg, char *val; if (optflag->flags == OPTION_BIN) { - val = strtok(NULL, ""); /* do not split "'q w e'" */ + val = strtok_r(NULL, "", &str); /* do not split "'q w e'" */ if (val) trim(val); } else - val = strtok(NULL, ", \t"); + val = strtok_r(NULL, ", \t", &str); if (!val) break; @@ -567,7 +567,7 @@ int FAST_FUNC udhcp_str2optset(const char *const_str, void *arg, break; case OPTION_IP_PAIR: retval = udhcp_str2nip(val, buffer); - val = strtok(NULL, ", \t/-"); + val = strtok_r(NULL, ", \t/-", &str); if (!val) retval = 0; if (retval) @@ -631,7 +631,7 @@ int FAST_FUNC udhcp_str2optset(const char *const_str, void *arg, *slash = '\0'; retval = udhcp_str2nip(val, buffer + 1); buffer[0] = mask = bb_strtou(slash + 1, NULL, 10); - val = strtok(NULL, ", \t/-"); + val = strtok_r(NULL, ", \t/-", &str); if (!val || mask > 32 || errno) retval = 0; if (retval) { |