ash: minor fixes
authorRon Yorston <rmy@pobox.com>
Mon, 5 Nov 2018 13:13:08 +0000 (13:13 +0000)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 6 Nov 2018 07:49:11 +0000 (08:49 +0100)
Ensure that login_sh is initialised in procargs even when running
an embedded script.

The argc argument to ash_main isn't unused when embedded scripts
are present.

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
shell/ash.c

index 88f2b5bd64e3283a1b87fb4f7e9ec5f5b1bca1da..90eaf6fafef939ca77a92f4741b6a41f37437177 100644 (file)
@@ -14052,11 +14052,11 @@ procargs(char **argv)
        int login_sh;
 
        xargv = argv;
+       login_sh = xargv[0] && xargv[0][0] == '-';
 #if NUM_SCRIPTS > 0
        if (minusc)
                goto setarg0;
 #endif
-       login_sh = xargv[0] && xargv[0][0] == '-';
        arg0 = xargv[0];
        /* if (xargv[0]) - mmm, this is always true! */
                xargv++;
@@ -14164,7 +14164,11 @@ extern int etext();
  * is used to figure out how far we had gotten.
  */
 int ash_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+#if NUM_SCRIPTS > 0
+int ash_main(int argc, char **argv)
+#else
 int ash_main(int argc UNUSED_PARAM, char **argv)
+#endif
 /* note: 'argc' is used only if embedded scripts are enabled */
 {
        volatile smallint state;