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>
diff --git a/networking/nslookup.c b/networking/nslookup.c
index c43e605..759de5c 100644
--- a/networking/nslookup.c
+++ b/networking/nslookup.c
@@ -703,12 +703,13 @@
 
 		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 20d843b..4bc7190 100644
--- a/networking/udhcp/common.c
+++ b/networking/udhcp/common.c
@@ -526,7 +526,7 @@
 
 	/* 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 @@
 		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 @@
 			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 @@
 				*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) {