diff options
author | Denys Vlasenko | 2017-07-07 16:09:45 +0200 |
---|---|---|
committer | Denys Vlasenko | 2017-07-07 16:09:45 +0200 |
commit | 2bfe7838abd64efa7b18d7d428c5477669f967b0 (patch) | |
tree | 48cdb2ef0d6718640db9a192606b17b4e70e2a66 /util-linux/setpriv.c | |
parent | cf5748cc892f78c004359ed321bf72bc8e3772ac (diff) | |
download | busybox-2bfe7838abd64efa7b18d7d428c5477669f967b0.zip busybox-2bfe7838abd64efa7b18d7d428c5477669f967b0.tar.gz |
setpriv: factor out capability name printing
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'util-linux/setpriv.c')
-rw-r--r-- | util-linux/setpriv.c | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/util-linux/setpriv.c b/util-linux/setpriv.c index dc83549..3a7e680 100644 --- a/util-linux/setpriv.c +++ b/util-linux/setpriv.c @@ -291,6 +291,19 @@ static void set_ambient_caps(char *string) #endif /* FEATURE_SETPRIV_CAPABILITIES */ #if ENABLE_FEATURE_SETPRIV_DUMP +# if ENABLE_FEATURE_SETPRIV_CAPABILITY_NAMES +static void printf_cap(const char *pfx, unsigned cap_no) +{ + if (cap_no < ARRAY_SIZE(capabilities)) { + printf("%s%s", pfx, capabilities[cap_no]); + return; + } + printf("%scap_%u", pfx, cap_no); +} +# else +# define printf_cap(pfx, cap_no) printf("%scap_%u", (pfx), (cap_no)) +# endif + static int dump(void) { IF_FEATURE_SETPRIV_CAPABILITIES(struct caps caps;) @@ -337,12 +350,7 @@ static int dump(void) bb_error_msg_and_die("unsupported capability"); } if (caps.data[idx].inheritable & CAP_TO_MASK(i)) { -# if ENABLE_FEATURE_SETPRIV_CAPABILITY_NAMES - if (i < ARRAY_SIZE(capabilities)) - printf("%s%s", fmt, capabilities[i]); - else -# endif - printf("%scap_%u", fmt, i); + printf_cap(fmt, i); fmt = ","; } } @@ -356,12 +364,7 @@ static int dump(void) if (ret < 0) bb_perror_msg_and_die("prctl: %s", "CAP_AMBIENT_IS_SET"); if (ret) { -# if ENABLE_FEATURE_SETPRIV_CAPABILITY_NAMES - if (i < ARRAY_SIZE(capabilities)) - printf("%s%s", fmt, capabilities[i]); - else -# endif - printf("%scap_%u", fmt, i); + printf_cap(fmt, i); fmt = ","; } } @@ -377,12 +380,7 @@ static int dump(void) if (ret < 0) bb_perror_msg_and_die("prctl: %s", "CAPBSET_READ"); if (ret) { -# if ENABLE_FEATURE_SETPRIV_CAPABILITY_NAMES - if (i < ARRAY_SIZE(capabilities)) - printf("%s%s", fmt, capabilities[i]); - else -# endif - printf("%scap_%u", fmt, i); + printf_cap(fmt, i); fmt = ","; } } |