diff options
| author | Robert Watson <rwatson@FreeBSD.org> | 2000-10-13 17:12:58 +0000 |
|---|---|---|
| committer | Robert Watson <rwatson@FreeBSD.org> | 2000-10-13 17:12:58 +0000 |
| commit | ab024bb02e15bb031c2b2e3377f44569526b1952 (patch) | |
| tree | ac316b98fc8c8b89efec7094f055143b60e537c8 /lib/libposix1e | |
| parent | e11cbdb767bd8b3f6687603ff26173ae478ec8de (diff) | |
Notes
Diffstat (limited to 'lib/libposix1e')
| -rw-r--r-- | lib/libposix1e/cap_get_flag.c | 3 | ||||
| -rw-r--r-- | lib/libposix1e/cap_set_flag.c | 15 |
2 files changed, 10 insertions, 8 deletions
diff --git a/lib/libposix1e/cap_get_flag.c b/lib/libposix1e/cap_get_flag.c index 6c549e61c3f0..37595ee8ed59 100644 --- a/lib/libposix1e/cap_get_flag.c +++ b/lib/libposix1e/cap_get_flag.c @@ -37,8 +37,7 @@ int cap_get_flag(cap_t cap_p, cap_value_t cap, cap_flag_t flag, cap_flag_value_t *value_p) { - cap_flag_value_t result; - u_int32_t *mask; + u_int64_t mask; switch(flag) { diff --git a/lib/libposix1e/cap_set_flag.c b/lib/libposix1e/cap_set_flag.c index e6e2259c9db0..bf150e93a138 100644 --- a/lib/libposix1e/cap_set_flag.c +++ b/lib/libposix1e/cap_set_flag.c @@ -37,28 +37,31 @@ int cap_set_flag(cap_t cap_p, cap_flag_t flag, int ncap, cap_value_t caps[], cap_flag_value_t value) { - u_int *mask; + u_int64_t *mask; int i; switch(flag) { case CAP_EFFECTIVE: - mask = &cap_p->c_effective[0]; + mask = &cap_p->c_effective; break; case CAP_INHERITABLE: - mask = &cap_p->c_inheritable[0]; + mask = &cap_p->c_inheritable; break; case CAP_PERMITTED: - mask = &cap_p->c_permitted[0]; + mask = &cap_p->c_permitted; break; default: return (EINVAL); } + if (value != CAP_SET && value != CAP_CLEAR) + return (EINVAL); + for (i = 0; i < ncap; i++) if (value == CAP_SET) - SET_CAPABILITY(mask, caps[i]); + SET_CAPABILITY(*mask, caps[i]); else - UNSET_CAPABILITY(mask, caps[i]); + UNSET_CAPABILITY(*mask, caps[i]); return (0); } |
