aboutsummaryrefslogtreecommitdiff
path: root/util-linux/setpriv.c
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2020-11-12 08:27:51 +0000
committerRon Yorston <rmy@pobox.com>2020-11-12 08:27:51 +0000
commitead8b92e3d66ab45235e137f85fb3a529dcc64ef (patch)
treeaf268270382dad969218063d4a8120fc91a9e631 /util-linux/setpriv.c
parent567728c22dddea4ed33b8a69641ba2e0c3f1f600 (diff)
parent64981b4c8e88812c322bee3832f1d421ff670ed5 (diff)
downloadbusybox-w32-ead8b92e3d66ab45235e137f85fb3a529dcc64ef.tar.gz
busybox-w32-ead8b92e3d66ab45235e137f85fb3a529dcc64ef.tar.bz2
busybox-w32-ead8b92e3d66ab45235e137f85fb3a529dcc64ef.zip
Merge branch 'busybox' into merge
Diffstat (limited to 'util-linux/setpriv.c')
-rw-r--r--util-linux/setpriv.c9
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)
144static void set_inh_caps(char *capstring) 144static 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 */