diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2009-04-23 06:41:51 +1000 |
---|---|---|
committer | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2009-04-23 06:41:51 +1000 |
commit | 0d9e54f7691bbfe8ca41c8f2fb899a1b4786d627 (patch) | |
tree | 4754ddd4433d7acac32f39b9a1230eace7a6d0ba /libbb | |
parent | 4dee81871d8ec57f554d969b00ff80ad404fac4e (diff) | |
download | busybox-w32-0d9e54f7691bbfe8ca41c8f2fb899a1b4786d627.tar.gz busybox-w32-0d9e54f7691bbfe8ca41c8f2fb899a1b4786d627.tar.bz2 busybox-w32-0d9e54f7691bbfe8ca41c8f2fb899a1b4786d627.zip |
run-command: rework interface to pass program path directly
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/mingw.c | 8 | ||||
-rw-r--r-- | libbb/run-command.c | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/libbb/mingw.c b/libbb/mingw.c index e3ec2782c..4b267e2ba 100644 --- a/libbb/mingw.c +++ b/libbb/mingw.c | |||
@@ -812,12 +812,12 @@ static int spawn_gitbox_shell(struct child_process *cp, const char *cmd, const c | |||
812 | 812 | ||
813 | while (argv[argc]) argc++; | 813 | while (argv[argc]) argc++; |
814 | argv2 = xmalloc(sizeof(*argv) * (argc+3)); | 814 | argv2 = xmalloc(sizeof(*argv) * (argc+3)); |
815 | argv2[0] = CONFIG_BUSYBOX_EXEC_PATH; | 815 | argv2[0] = "sh"; |
816 | argv2[1] = "sh"; | 816 | argv2[1] = cmd; |
817 | argv2[2] = cmd; | 817 | memcpy(&argv2[2], &argv[1], sizeof(*argv)*argc); |
818 | memcpy(&argv2[3], &argv[1], sizeof(*argv)*argc); | ||
819 | 818 | ||
820 | memset(cp, 0, sizeof(*cp)); | 819 | memset(cp, 0, sizeof(*cp)); |
820 | cp->cmd = CONFIG_BUSYBOX_EXEC_PATH; | ||
821 | cp->argv = argv2; | 821 | cp->argv = argv2; |
822 | ret = start_command(cp); | 822 | ret = start_command(cp); |
823 | free(argv2); | 823 | free(argv2); |
diff --git a/libbb/run-command.c b/libbb/run-command.c index d4d78e9bc..bac8f0e66 100644 --- a/libbb/run-command.c +++ b/libbb/run-command.c | |||
@@ -174,7 +174,7 @@ int start_command(struct child_process *cmd) | |||
174 | } | 174 | } |
175 | #endif | 175 | #endif |
176 | 176 | ||
177 | cmd->pid = mingw_spawnvpe(cmd->argv[0], cmd->argv, env); | 177 | cmd->pid = mingw_spawnvpe(cmd->cmd ? cmd->cmd : cmd->argv[0], cmd->argv, env); |
178 | 178 | ||
179 | if (cmd->env) | 179 | if (cmd->env) |
180 | free_environ(env); | 180 | free_environ(env); |