diff options
Diffstat (limited to 'shell/hush.c')
-rw-r--r-- | shell/hush.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/shell/hush.c b/shell/hush.c index 0ade2ccca..4ba6b3fdd 100644 --- a/shell/hush.c +++ b/shell/hush.c | |||
@@ -7723,6 +7723,10 @@ static NOINLINE int run_pipe(struct pipe *pi) | |||
7723 | unset_vars(new_env); | 7723 | unset_vars(new_env); |
7724 | add_vars(old_vars); | 7724 | add_vars(old_vars); |
7725 | /* clean_up_and_ret0: */ | 7725 | /* clean_up_and_ret0: */ |
7726 | |||
7727 | //FIXME: this restores stdio fds, but does not close other redirects! | ||
7728 | //Example: after "echo TEST 9>/dev/null" fd#9 is not closed! | ||
7729 | //The squirreling code needs rework to remember all fds, not just 0,1,2. | ||
7726 | restore_redirects(squirrel); | 7730 | restore_redirects(squirrel); |
7727 | clean_up_and_ret1: | 7731 | clean_up_and_ret1: |
7728 | free(argv_expanded); | 7732 | free(argv_expanded); |