aboutsummaryrefslogtreecommitdiff
path: root/util-linux/setpriv.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2017-07-07 16:09:45 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2017-07-07 16:09:45 +0200
commit2bfe7838abd64efa7b18d7d428c5477669f967b0 (patch)
tree48cdb2ef0d6718640db9a192606b17b4e70e2a66 /util-linux/setpriv.c
parentcf5748cc892f78c004359ed321bf72bc8e3772ac (diff)
downloadbusybox-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.c34
1 files changed, 16 insertions, 18 deletions
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 = ",";
}
}