aboutsummaryrefslogtreecommitdiff
path: root/networking
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2020-10-06 02:36:47 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2020-10-06 02:36:47 +0200
commit2496616b0a8d1c80cd1416b73a4847b59b9f969a (patch)
treedc52a8f9bbbf33d507ecf0b808614b7923786567 /networking
parent535a509846be5087ddd0d6e8fc6399f919942639 (diff)
downloadbusybox-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.c5
-rw-r--r--networking/udhcp/common.c10
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) {