diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ash.c | 6 | ||||
-rw-r--r-- | shell/hush.c | 5 |
2 files changed, 4 insertions, 7 deletions
diff --git a/shell/ash.c b/shell/ash.c index 8b21e655c..af96c4d1d 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -6470,10 +6470,8 @@ tryexec(char *cmd, char **argv, char **envp) a = find_applet_by_name(cmd); if (a) { - if (a->noexec) { - current_applet = a; - run_current_applet_and_exit(argv); - } + if (a->noexec) + run_appletstruct_and_exit(a, argv); /* re-exec ourselves with the new arguments */ execve(bb_busybox_exec_path, argv, envp); /* If they called chroot or otherwise made the binary no longer diff --git a/shell/hush.c b/shell/hush.c index 90ed15547..1977da0f0 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -1399,10 +1399,9 @@ static void pseudo_exec_argv(char **argv) const struct bb_applet *a = find_applet_by_name(argv[0]); if (a) { if (a->noexec) { - current_applet = a; debug_printf_exec("running applet '%s'\n", argv[0]); -// is it ok that run_current_applet_and_exit() does exit(), not _exit()? - run_current_applet_and_exit(argv); +// is it ok that run_appletstruct_and_exit() does exit(), not _exit()? + run_appletstruct_and_exit(a, argv); } /* re-exec ourselves with the new arguments */ debug_printf_exec("re-execing applet '%s'\n", argv[0]); |