summaryrefslogtreecommitdiff
path: root/util-linux/setpriv.c
diff options
context:
space:
mode:
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 37e8821..1e4b201 100644
--- a/util-linux/setpriv.c
+++ b/util-linux/setpriv.c
@@ -144,10 +144,11 @@ static unsigned parse_cap(const char *cap)
static void set_inh_caps(char *capstring)
{
struct caps caps;
+ char *string;
getcaps(&caps);
- capstring = strtok(capstring, ",");
+ capstring = strtok_r(capstring, ",", &string);
while (capstring) {
unsigned cap;
@@ -159,7 +160,7 @@ static void set_inh_caps(char *capstring)
caps.data[CAP_TO_INDEX(cap)].inheritable |= CAP_TO_MASK(cap);
else
caps.data[CAP_TO_INDEX(cap)].inheritable &= ~CAP_TO_MASK(cap);
- capstring = strtok(NULL, ",");
+ capstring = strtok_r(NULL, ",", &string);
}
if (capset(&caps.header, caps.data) != 0)
@@ -170,7 +171,7 @@ static void set_ambient_caps(char *string)
{
char *cap;
- cap = strtok(string, ",");
+ cap = strtok_r(string, ",", &string);
while (cap) {
unsigned idx;
@@ -182,7 +183,7 @@ static void set_ambient_caps(char *string)
if (prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_LOWER, idx, 0, 0) < 0)
bb_simple_perror_msg("cap_ambient_lower");
}
- cap = strtok(NULL, ",");
+ cap = strtok_r(NULL, ",", &string);
}
}
#endif /* FEATURE_SETPRIV_CAPABILITIES */