noexec: do GETOPT_RESET() before entering APPLET_main()
No binary (build failed)
—
(log yok)
| @@ -176,6 +176,7 @@ int FAST_FUNC spawn_and_wait(char **argv) | |
| /* child */ | |
| /* reset some state and run without execing */ | |
| + | GETOPT_RESET(); |
| /* msg_eol = "\n"; - no caller needs this reinited yet */ | |
| logmode = LOGMODE_STDIO; | |
| @@ -7803,6 +7803,7 @@ tryexec(IF_FEATURE_SH_STANDALONE(int applet_no,) const char *cmd, char **argv, c | |
| while (*envp) | |
| putenv(*envp++); | |
| popredir(/*drop:*/ 1); | |
| + | GETOPT_RESET(); |
| //TODO: think pidof, pgrep, pkill! | |
| //set_task_comm() makes our pidof find NOEXECs (e.g. "yes >/dev/null"), | |
| //but one from procps-ng-3.3.10 needs more! | |
| @@ -7386,12 +7386,13 @@ static NOINLINE void pseudo_exec_argv(nommu_save_t *nommu_save, | |
| //FIXME: should also close saved redir fds | |
| /* Without this, "rm -i FILE" can't be ^C'ed: */ | |
| switch_off_special_sigs(G.special_sig_mask); | |
| - | debug_printf_exec("running applet '%s'\n", argv[0]); |
| + | GETOPT_RESET(); |
| //TODO: think pidof, pgrep, pkill! | |
| //set_task_comm() makes our pidof find NOEXECs (e.g. "yes >/dev/null"), | |
| //but one from procps-ng-3.3.10 needs more! | |
| //Rewrite /proc/PID/cmdline? (need to save argv0 and length at init for this to work!) | |
| set_task_comm(argv[0]); | |
| + | debug_printf_exec("running applet '%s'\n", argv[0]); |
| run_applet_no_and_exit(a, argv[0], argv); | |
| } | |
| # endif | |