[git commit] hush: fix mishandling of "true | f() { echo QWE; }"
Denys Vlasenko
vda.linux at googlemail.com
Tue Apr 3 11:02:43 UTC 2018
commit: https://git.busybox.net/busybox/commit/?id=49015a60cb334ecd0b069f27833a3d50853509fa
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master
function old new delta
run_pipe 1820 1826 +6
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
shell/hush.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/shell/hush.c b/shell/hush.c
index b64993faa..94e429c0d 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -7705,6 +7705,15 @@ static void pseudo_exec(nommu_save_t *nommu_save,
struct command *command,
char **argv_expanded)
{
+#if ENABLE_HUSH_FUNCTIONS
+ if (command->cmd_type == CMD_FUNCDEF) {
+ /* Ignore funcdefs in pipes:
+ * true | f() { cmd }
+ */
+ _exit(0);
+ }
+#endif
+
if (command->argv) {
pseudo_exec_argv(nommu_save, command->argv,
command->assignment_cnt, argv_expanded);
More information about the busybox-cvs
mailing list