hush: fix mishandling of "true | f() { echo QWE; }"
function old new delta run_pipe 1820 1826 +6 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
5fa0505f8a
commit
49015a60cb
@ -7705,6 +7705,15 @@ static void pseudo_exec(nommu_save_t *nommu_save,
|
|||||||
struct command *command,
|
struct command *command,
|
||||||
char **argv_expanded)
|
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) {
|
if (command->argv) {
|
||||||
pseudo_exec_argv(nommu_save, command->argv,
|
pseudo_exec_argv(nommu_save, command->argv,
|
||||||
command->assignment_cnt, argv_expanded);
|
command->assignment_cnt, argv_expanded);
|
||||||
|
Loading…
Reference in New Issue
Block a user