aboutsummaryrefslogtreecommitdiffstats
path: root/main/busybox/0013-ash-make-shellexec-capable-of-using-separate-argv-0-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/busybox/0013-ash-make-shellexec-capable-of-using-separate-argv-0-.patch')
-rw-r--r--main/busybox/0013-ash-make-shellexec-capable-of-using-separate-argv-0-.patch91
1 files changed, 0 insertions, 91 deletions
diff --git a/main/busybox/0013-ash-make-shellexec-capable-of-using-separate-argv-0-.patch b/main/busybox/0013-ash-make-shellexec-capable-of-using-separate-argv-0-.patch
deleted file mode 100644
index 70f420a923..0000000000
--- a/main/busybox/0013-ash-make-shellexec-capable-of-using-separate-argv-0-.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From e139ae307e4fd9eb3b86a6fc2e97b4e212925199 Mon Sep 17 00:00:00 2001
-From: Denys Vlasenko <vda.linux@googlemail.com>
-Date: Wed, 12 Apr 2017 21:02:33 +0200
-Subject: [PATCH 13/14] ash: make shellexec capable of using separate argv[0]
- and filename to exec
-
-function old new delta
-execcmd 71 78 +7
-shellexec 221 224 +3
-evalcommand 1158 1161 +3
-------------------------------------------------------------------------------
-(add/remove: 0/0 grow/shrink: 3/0 up/down: 13/0) Total: 13 bytes
-
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- shell/ash.c | 21 ++++++++++-----------
- 1 file changed, 10 insertions(+), 11 deletions(-)
-
-diff --git a/shell/ash.c b/shell/ash.c
-index 983f7b1..044f166 100644
---- a/shell/ash.c
-+++ b/shell/ash.c
-@@ -7744,9 +7744,8 @@ tryexec(IF_FEATURE_SH_STANDALONE(int applet_no,) char *cmd, char **argv, char **
- * have to change the find_command routine as well.
- * argv[-1] must exist and be writable! See tryexec() for why.
- */
--static void shellexec(char **, const char *, int) NORETURN;
--static void
--shellexec(char **argv, const char *path, int idx)
-+static void shellexec(char *prog, char **argv, const char *path, int idx) NORETURN;
-+static void shellexec(char *prog, char **argv, const char *path, int idx)
- {
- char *cmdname;
- int e;
-@@ -7755,12 +7754,12 @@ shellexec(char **argv, const char *path, int idx)
- int applet_no = -1; /* used only by FEATURE_SH_STANDALONE */
-
- envp = listvars(VEXPORT, VUNSET, /*end:*/ NULL);
-- if (strchr(argv[0], '/') != NULL
-+ if (strchr(prog, '/') != NULL
- #if ENABLE_FEATURE_SH_STANDALONE
-- || (applet_no = find_applet_by_name(argv[0])) >= 0
-+ || (applet_no = find_applet_by_name(prog)) >= 0
- #endif
- ) {
-- tryexec(IF_FEATURE_SH_STANDALONE(applet_no,) argv[0], argv, envp);
-+ tryexec(IF_FEATURE_SH_STANDALONE(applet_no,) prog, argv, envp);
- if (applet_no >= 0) {
- /* We tried execing ourself, but it didn't work.
- * Maybe /proc/self/exe doesn't exist?
-@@ -7772,7 +7771,7 @@ shellexec(char **argv, const char *path, int idx)
- } else {
- try_PATH:
- e = ENOENT;
-- while ((cmdname = path_advance(&path, argv[0])) != NULL) {
-+ while ((cmdname = path_advance(&path, prog)) != NULL) {
- if (--idx < 0 && pathopt == NULL) {
- tryexec(IF_FEATURE_SH_STANDALONE(-1,) cmdname, argv, envp);
- if (errno != ENOENT && errno != ENOTDIR)
-@@ -7796,8 +7795,8 @@ shellexec(char **argv, const char *path, int idx)
- }
- exitstatus = exerrno;
- TRACE(("shellexec failed for %s, errno %d, suppress_int %d\n",
-- argv[0], e, suppress_int));
-- ash_msg_and_raise(EXEXIT, "%s: %s", argv[0], errmsg(e, "not found"));
-+ prog, e, suppress_int));
-+ ash_msg_and_raise(EXEXIT, "%s: %s", prog, errmsg(e, "not found"));
- /* NOTREACHED */
- }
-
-@@ -9371,7 +9370,7 @@ execcmd(int argc UNUSED_PARAM, char **argv)
- /*setsignal(SIGTSTP); - unnecessary because of mflag=0 */
- /*setsignal(SIGTTOU); - unnecessary because of mflag=0 */
-
-- shellexec(argv + 1, pathval(), 0);
-+ shellexec(argv[1], argv + 1, pathval(), 0);
- /* NOTREACHED */
- }
- return 0;
-@@ -9773,7 +9772,7 @@ evalcommand(union node *cmd, int flags)
- /* fall through to exec'ing external program */
- }
- listsetvar(varlist.list, VEXPORT|VSTACK);
-- shellexec(argv, path, cmdentry.u.index);
-+ shellexec(argv[0], argv, path, cmdentry.u.index);
- /* NOTREACHED */
- } /* default */
- case CMDBUILTIN:
---
-2.9.3
-