From 5e071629acaed31af8aadbdbb2b16a7ac3d84fc0 Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Thu, 20 Sep 2018 14:44:01 +0900 Subject: [PATCH] Adjust checking cap list - Removes checking cap_sys_admin existence Change-Id: Iae1da549f9fb0d379e02ecf11abeb83815ebbc8b Signed-off-by: Hwankyu Jhun --- src/launchpad_common.c | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/src/launchpad_common.c b/src/launchpad_common.c index 2d7e3b6..e1d22c8 100644 --- a/src/launchpad_common.c +++ b/src/launchpad_common.c @@ -1282,8 +1282,7 @@ int _verify_proc_caps(void) cap_t cap_d; cap_flag_value_t eff_state; cap_flag_value_t inh_state; - cap_value_t values[] = {CAP_SETGID, CAP_SYS_ADMIN}; - int i; + cap_value_t value = CAP_SETGID; int r; cap_d = cap_get_proc(); @@ -1292,27 +1291,25 @@ int _verify_proc_caps(void) return -1; } - for (i = 0; i < ARRAY_SIZE(values); i++) { - r = cap_get_flag(cap_d, values[i], CAP_INHERITABLE, &inh_state); - if (r != 0) { - _E("Failed to get cap inh - errno(%d)", errno); - cap_free(cap_d); - return -1; - } + r = cap_get_flag(cap_d, value, CAP_INHERITABLE, &inh_state); + if (r != 0) { + _E("Failed to get cap inh - errno(%d)", errno); + cap_free(cap_d); + return -1; + } - r = cap_get_flag(cap_d, values[i], CAP_EFFECTIVE, &eff_state); - if (r != 0) { - _E("Failed to get cap eff - errno(%d)", errno); - cap_free(cap_d); - return -1; - } + r = cap_get_flag(cap_d, value, CAP_EFFECTIVE, &eff_state); + if (r != 0) { + _E("Failed to get cap eff - errno(%d)", errno); + cap_free(cap_d); + return -1; + } - if ((inh_state != CAP_SET) || (eff_state != CAP_SET)) { - _E("The process(%d) doesn't have %d cap", - getpid(), values[i]); - cap_free(cap_d); - return -1; - } + if ((inh_state != CAP_SET) || (eff_state != CAP_SET)) { + _E("The process(%d) doesn't have %d cap", + getpid(), value); + cap_free(cap_d); + return -1; } cap_free(cap_d); -- 2.7.4