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 /util-linux/setpriv.c | |
parent | 535a509846be5087ddd0d6e8fc6399f919942639 (diff) | |
download | busybox-w32-2496616b0a8d1c80cd1416b73a4847b59b9f969a.tar.gz busybox-w32-2496616b0a8d1c80cd1416b73a4847b59b9f969a.tar.bz2 busybox-w32-2496616b0a8d1c80cd1416b73a4847b59b9f969a.zip |
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 'util-linux/setpriv.c')
-rw-r--r-- | util-linux/setpriv.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/util-linux/setpriv.c b/util-linux/setpriv.c index 37e8821a1..1e4b201ed 100644 --- a/util-linux/setpriv.c +++ b/util-linux/setpriv.c | |||
@@ -144,10 +144,11 @@ static unsigned parse_cap(const char *cap) | |||
144 | static void set_inh_caps(char *capstring) | 144 | static void set_inh_caps(char *capstring) |
145 | { | 145 | { |
146 | struct caps caps; | 146 | struct caps caps; |
147 | char *string; | ||
147 | 148 | ||
148 | getcaps(&caps); | 149 | getcaps(&caps); |
149 | 150 | ||
150 | capstring = strtok(capstring, ","); | 151 | capstring = strtok_r(capstring, ",", &string); |
151 | while (capstring) { | 152 | while (capstring) { |
152 | unsigned cap; | 153 | unsigned cap; |
153 | 154 | ||
@@ -159,7 +160,7 @@ static void set_inh_caps(char *capstring) | |||
159 | caps.data[CAP_TO_INDEX(cap)].inheritable |= CAP_TO_MASK(cap); | 160 | caps.data[CAP_TO_INDEX(cap)].inheritable |= CAP_TO_MASK(cap); |
160 | else | 161 | else |
161 | caps.data[CAP_TO_INDEX(cap)].inheritable &= ~CAP_TO_MASK(cap); | 162 | caps.data[CAP_TO_INDEX(cap)].inheritable &= ~CAP_TO_MASK(cap); |
162 | capstring = strtok(NULL, ","); | 163 | capstring = strtok_r(NULL, ",", &string); |
163 | } | 164 | } |
164 | 165 | ||
165 | if (capset(&caps.header, caps.data) != 0) | 166 | if (capset(&caps.header, caps.data) != 0) |
@@ -170,7 +171,7 @@ static void set_ambient_caps(char *string) | |||
170 | { | 171 | { |
171 | char *cap; | 172 | char *cap; |
172 | 173 | ||
173 | cap = strtok(string, ","); | 174 | cap = strtok_r(string, ",", &string); |
174 | while (cap) { | 175 | while (cap) { |
175 | unsigned idx; | 176 | unsigned idx; |
176 | 177 | ||
@@ -182,7 +183,7 @@ static void set_ambient_caps(char *string) | |||
182 | if (prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_LOWER, idx, 0, 0) < 0) | 183 | if (prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_LOWER, idx, 0, 0) < 0) |
183 | bb_simple_perror_msg("cap_ambient_lower"); | 184 | bb_simple_perror_msg("cap_ambient_lower"); |
184 | } | 185 | } |
185 | cap = strtok(NULL, ","); | 186 | cap = strtok_r(NULL, ",", &string); |
186 | } | 187 | } |
187 | } | 188 | } |
188 | #endif /* FEATURE_SETPRIV_CAPABILITIES */ | 189 | #endif /* FEATURE_SETPRIV_CAPABILITIES */ |