diff options
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) 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 */ |