[git commit] hush: add a TODO about redir3.tests failure

Denys Vlasenko vda.linux at googlemail.com
Thu Jul 6 18:57:37 UTC 2017


commit: https://git.busybox.net/busybox/commit/?id=50b8b2914b7551b4e36518fcc70aac201d46d7cb
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 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(+)

diff --git a/shell/hush.c b/shell/hush.c
index 0ade2cc..4ba6b3f 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 0000000..fd641a8
--- /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 0000000..e37d5e4
--- /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: $?"


More information about the busybox-cvs mailing list