From 040f39c45f6dbfde36a1a16dd7ad26c5b21ff7cf Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Fri, 14 Oct 2016 15:27:24 +0200 Subject: [PATCH] tools: better error reporting for lxc-start Signed-off-by: Christian Brauner --- src/lxc/tools/lxc_start.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/lxc/tools/lxc_start.c b/src/lxc/tools/lxc_start.c index 25d8f194e..eaa8da418 100644 --- a/src/lxc/tools/lxc_start.c +++ b/src/lxc/tools/lxc_start.c @@ -86,7 +86,7 @@ static int ensure_path(char **confpath, const char *path) goto err; } } - err = 0; + err = EXIT_SUCCESS; err: free(fullpath); @@ -231,6 +231,12 @@ int main(int argc, char *argv[]) exit(err); lxc_log_options_no_override(); + if (access(my_args.lxcpath[0], O_RDWR) < 0) { + if (!my_args.quiet) + fprintf(stderr, "You lack access to %s\n", my_args.lxcpath[0]); + exit(err); + } + const char *lxcpath = my_args.lxcpath[0]; /* @@ -275,9 +281,19 @@ int main(int argc, char *argv[]) } } + if (!c->is_defined(c)) { + fprintf(stderr, "Error: container %s is not defined\n", c->name); + goto out; + } + + if (!c->may_control(c)) { + fprintf(stderr, "Insufficent privileges to control %s\n", c->name); + goto out; + } + if (c->is_running(c)) { ERROR("Container is already running."); - err = 0; + err = EXIT_SUCCESS; goto out; } /* -- 2.47.2