diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2017-07-06 20:57:37 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2017-07-06 20:57:37 +0200 |
commit | 50b8b2914b7551b4e36518fcc70aac201d46d7cb (patch) | |
tree | 0c8c9a65c10fec5323d0ff8dd0374b89c5d12d0f /shell | |
parent | a107ef2a6ace98c51473dc3153564a44b260bc6f (diff) | |
download | busybox-w32-50b8b2914b7551b4e36518fcc70aac201d46d7cb.tar.gz busybox-w32-50b8b2914b7551b4e36518fcc70aac201d46d7cb.tar.bz2 busybox-w32-50b8b2914b7551b4e36518fcc70aac201d46d7cb.zip |
hush: add a TODO about redir3.tests failure
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell')
-rw-r--r-- | shell/hush.c | 4 | ||||
-rw-r--r-- | shell/hush_test/hush-redir/redir3.right | 3 | ||||
-rwxr-xr-x | shell/hush_test/hush-redir/redir3.tests | 5 |
3 files changed, 12 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); |
diff --git a/shell/hush_test/hush-redir/redir3.right b/shell/hush_test/hush-redir/redir3.right new file mode 100644 index 000000000..fd641a8ea --- /dev/null +++ b/shell/hush_test/hush-redir/redir3.right | |||
@@ -0,0 +1,3 @@ | |||
1 | TEST | ||
2 | ./redir3.tests: line 4: 9: Bad file descriptor | ||
3 | Output to fd#9: 1 | ||
diff --git a/shell/hush_test/hush-redir/redir3.tests b/shell/hush_test/hush-redir/redir3.tests new file mode 100755 index 000000000..e37d5e45a --- /dev/null +++ b/shell/hush_test/hush-redir/redir3.tests | |||
@@ -0,0 +1,5 @@ | |||
1 | # redirects to closed descriptors should not leave these descriptors | ||
2 | # open afterwards | ||
3 | echo TEST 9>/dev/null | ||
4 | echo MUST ERROR OUT >&9 | ||
5 | echo "Output to fd#9: $?" | ||