From: Lennart Poettering Date: Wed, 6 Mar 2019 10:37:04 +0000 (+0100) Subject: capability: add a way to get a uint64_t with all caps set X-Git-Tag: v242-rc1~99^2~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c8a79aa8127c40eab63aef4758bc3492db864214;p=thirdparty%2Fsystemd.git capability: add a way to get a uint64_t with all caps set --- diff --git a/src/basic/capability-util.h b/src/basic/capability-util.h index 02c7d5c3e2e..e69b2fbb957 100644 --- a/src/basic/capability-util.h +++ b/src/basic/capability-util.h @@ -33,10 +33,12 @@ static inline void cap_free_charpp(char **p) { } #define _cleanup_cap_free_charp_ _cleanup_(cap_free_charpp) +static inline uint64_t all_capabilities(void) { + return UINT64_MAX >> (63 - cap_last_cap()); +} + static inline bool cap_test_all(uint64_t caps) { - uint64_t m; - m = (UINT64_C(1) << (cap_last_cap() + 1)) - 1; - return FLAGS_SET(caps, m); + return FLAGS_SET(caps, all_capabilities()); } bool ambient_capabilities_supported(void);