X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fmain.c;h=7edd6b5811b145d312ac0f0ced09945e6b72d7cb;hb=260abb780a135e4cae8c10715c7e85675efc345a;hp=5b75ecca8e83383bc86e08c2d034fd12200acb23;hpb=6ef1b05339248b07270ac3d315458bc6c79a770d;p=elogind.git diff --git a/src/main.c b/src/main.c index 5b75ecca8..7edd6b581 100644 --- a/src/main.c +++ b/src/main.c @@ -51,6 +51,7 @@ #include "label.h" #include "build.h" #include "strv.h" +#include "def.h" static enum { ACTION_RUN, @@ -227,7 +228,6 @@ static int parse_proc_cmdline_word(const char *word) { static const char * const rlmap[] = { "emergency", SPECIAL_EMERGENCY_TARGET, "-b", SPECIAL_EMERGENCY_TARGET, - "b", SPECIAL_EMERGENCY_TARGET, "single", SPECIAL_RESCUE_TARGET, "-s", SPECIAL_RESCUE_TARGET, "s", SPECIAL_RESCUE_TARGET, @@ -828,30 +828,28 @@ static int parse_argv(int argc, char *argv[]) { break; } - if (optind < argc) { - if (getpid() != 1) { - /* Hmm, when we aren't run as init system - * let's complain about excess arguments */ + if (optind < argc && getpid() != 1) { + /* Hmm, when we aren't run as init system + * let's complain about excess arguments */ - log_error("Excess arguments."); - return -EINVAL; + log_error("Excess arguments."); + return -EINVAL; + } - } else if (detect_container(NULL) > 0) { - char **a; + if (detect_container(NULL) > 0) { + char **a; - /* All /proc/cmdline arguments the kernel - * didn't understand it passed to us. We're - * note really interested in that usually - * since /proc/cmdline is more interesting and - * complete. With one exception: if we are run - * in a container /proc/cmdline is not - * relevant for us, hence we rely on argv[] - * instead. */ + /* All /proc/cmdline arguments the kernel didn't + * understand it passed to us. We're not really + * interested in that usually since /proc/cmdline is + * more interesting and complete. With one exception: + * if we are run in a container /proc/cmdline is not + * relevant for the container, hence we rely on argv[] + * instead. */ - for (a = argv; a < argv + argc; a++) - if ((r = parse_proc_cmdline_word(*a)) < 0) - return r; - } + for (a = argv; a < argv + argc; a++) + if ((r = parse_proc_cmdline_word(*a)) < 0) + return r; } return 0;