From 50b8b2914b7551b4e36518fcc70aac201d46d7cb Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 6 Jul 2017 20:57:37 +0200 Subject: hush: add a TODO about redir3.tests failure Signed-off-by: Denys Vlasenko --- shell/hush.c | 4 ++++ shell/hush_test/hush-redir/redir3.right | 3 +++ shell/hush_test/hush-redir/redir3.tests | 5 +++++ 3 files changed, 12 insertions(+) create mode 100644 shell/hush_test/hush-redir/redir3.right create mode 100755 shell/hush_test/hush-redir/redir3.tests (limited to 'shell') 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) unset_vars(new_env); add_vars(old_vars); /* clean_up_and_ret0: */ + +//FIXME: this restores stdio fds, but does not close other redirects! +//Example: after "echo TEST 9>/dev/null" fd#9 is not closed! +//The squirreling code needs rework to remember all fds, not just 0,1,2. restore_redirects(squirrel); clean_up_and_ret1: 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 @@ +TEST +./redir3.tests: line 4: 9: Bad file descriptor +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 @@ +# redirects to closed descriptors should not leave these descriptors +# open afterwards +echo TEST 9>/dev/null +echo MUST ERROR OUT >&9 +echo "Output to fd#9: $?" -- cgit v1.2.3