diff options
author | Lennart Poettering <lennart@poettering.net> | 2011-03-16 03:35:59 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2011-03-16 03:41:49 +0100 |
commit | d821e6d69a84e0fafde0228f9b8f8837216eafa7 (patch) | |
tree | fdfcad56b1d39db3ef8b41d3c13bea0f560e96c4 /src/main.c | |
parent | a2c422cbbe0c420fcfdb7adf1e2ace9c40065cee (diff) |
main: interpret all argv[] arguments unconditionally when run in a container
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 46 |
1 files changed, 22 insertions, 24 deletions
diff --git a/src/main.c b/src/main.c index 5b75ecca8e..1d6ac42e90 100644 --- a/src/main.c +++ b/src/main.c @@ -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 */ - - log_error("Excess arguments."); - return -EINVAL; - - } else 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. */ - - for (a = argv; a < argv + argc; a++) - if ((r = parse_proc_cmdline_word(*a)) < 0) - return r; - } + 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; + } + + if (detect_container(NULL) > 0) { + char **a; + + /* 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; } return 0; |