aboutsummaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
Diffstat (limited to 'shell')
-rw-r--r--shell/ash.c6
-rw-r--r--shell/hush.c5
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]);