From 2bfe7838abd64efa7b18d7d428c5477669f967b0 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Fri, 7 Jul 2017 16:09:45 +0200 Subject: setpriv: factor out capability name printing Signed-off-by: Denys Vlasenko --- util-linux/setpriv.c | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) (limited to 'util-linux/setpriv.c') diff --git a/util-linux/setpriv.c b/util-linux/setpriv.c index dc83549ba..3a7e68006 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 = ","; } } -- cgit v1.2.3