summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2011-03-16 03:35:59 +0100
committerLennart Poettering <lennart@poettering.net>2011-03-16 03:41:49 +0100
commitd821e6d69a84e0fafde0228f9b8f8837216eafa7 (patch)
treefdfcad56b1d39db3ef8b41d3c13bea0f560e96c4 /src/main.c
parenta2c422cbbe0c420fcfdb7adf1e2ace9c40065cee (diff)
main: interpret all argv[] arguments unconditionally when run in a container
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c46
1 files changed, 22 insertions, 24 deletions
diff --git a/src/main.c b/src/main.c
index 5b75ecca8..1d6ac42e9 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;