From 05cda563bff2433c21acf5d13c364d581c34efd6 Mon Sep 17 00:00:00 2001 From: Daniel Lezcano Date: Tue, 20 Jul 2010 13:45:44 +0200 Subject: [PATCH] move the capabilities function to caps.c Move the reset of the capabilities to the caps.c file and initialize correctly the capabilities for lxc-init. Signed-off-by: Daniel Lezcano --- src/lxc/caps.c | 19 +++++++++++++++++++ src/lxc/caps.h | 1 + src/lxc/lxc_init.c | 30 +++++++----------------------- 3 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/lxc/caps.c b/src/lxc/caps.c index 70bfcb2e4..58634bad0 100644 --- a/src/lxc/caps.c +++ b/src/lxc/caps.c @@ -30,6 +30,25 @@ lxc_log_define(lxc_caps, lxc); +int lxc_caps_reset(void) +{ + cap_t cap = cap_init(); + int ret = 0; + + if (!cap) { + ERROR("cap_init() failed : %m"); + return -1; + } + + if (cap_set_proc(cap)) { + ERROR("cap_set_proc() failed : %m"); + ret = -1; + } + + cap_free(cap); + return ret; +} + int lxc_caps_down(void) { cap_t caps; diff --git a/src/lxc/caps.h b/src/lxc/caps.h index 6b2764899..4c07b69f6 100644 --- a/src/lxc/caps.h +++ b/src/lxc/caps.h @@ -23,6 +23,7 @@ #ifndef _caps_h #define _caps_h +extern int lxc_caps_reset(void); extern int lxc_caps_down(void); extern int lxc_caps_up(void); extern int lxc_caps_init(void); diff --git a/src/lxc/lxc_init.c b/src/lxc/lxc_init.c index 5c264c65d..a534b51e1 100644 --- a/src/lxc/lxc_init.c +++ b/src/lxc/lxc_init.c @@ -30,12 +30,12 @@ #include #include #include -#include #define _GNU_SOURCE #include -#include -#include +#include "log.h" +#include "caps.h" +#include "error.h" #include "utils.h" lxc_log_define(lxc_init, lxc); @@ -49,25 +49,6 @@ static struct option options[] = { static int was_interrupted = 0; -static int cap_reset(void) -{ - cap_t cap = cap_init(); - int ret = 0; - - if (!cap) { - ERROR("cap_init() failed : %m"); - return -1; - } - - if (cap_set_proc(cap)) { - ERROR("cap_set_proc() failed : %m"); - ret = -1; - } - - cap_free(cap); - return ret; -} - int main(int argc, char *argv[]) { @@ -95,6 +76,9 @@ int main(int argc, char *argv[]) nbargs++; } + if (lxc_caps_init()) + exit(err); + if (lxc_log_init(NULL, 0, basename(argv[0]), quiet)) exit(err); @@ -128,7 +112,7 @@ int main(int argc, char *argv[]) if (lxc_setup_fs()) exit(err); - if (cap_reset()) + if (lxc_caps_reset()) exit(err); pid = fork();