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>
This commit is contained in:
@@ -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;
|
||||
|
@@ -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) {
|
||||
|
Reference in New Issue
Block a user