diff options
author | Denys Vlasenko | 2017-07-31 04:09:19 +0200 |
---|---|---|
committer | Denys Vlasenko | 2017-07-31 04:21:46 +0200 |
commit | 035486c7500c09616a6c1040d8e70923532a5c2d (patch) | |
tree | 5af08692e5c5376d902d58843d994750eeca25c7 /shell/hush_test/hush-redir/redir_to_bad_fd255.tests | |
parent | 657e9005a9e31e1da094b260abaa8f335e92301f (diff) | |
download | busybox-035486c7500c09616a6c1040d8e70923532a5c2d.zip busybox-035486c7500c09616a6c1040d8e70923532a5c2d.tar.gz |
ash: significant overhaul of redirect saving logic
New code is similar to what hush is doing.
Make CLOSED to -1: same as dash.
popredir() loses "restore" parameter: same as dash.
COPYFD_RESTORE bit is no longer necessary.
This change fixes this interactive bug:
$ ls -l /proc/$$/fd 10>&-
ash: can't set tty process group: Bad file descriptor
ash: can't set tty process group: Bad file descriptor
[1]+ Done(2) ls -l /proc/${\$}/fd 10>&4294967295
function old new delta
unwindredir 29 27 -2
tryexec 154 152 -2
evaltree 503 501 -2
evalcommand 1369 1367 -2
cmdloop 187 185 -2
redirect 1029 1018 -11
popredir 153 123 -30
need_to_remember 36 - -36
is_hidden_fd 68 - -68
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 0/7 up/down: 0/-155) Total: -155 bytes
text data bss dec hex filename
914572 485 6848 921905 e1131 busybox_old
914553 485 6848 921886 e111e busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/hush_test/hush-redir/redir_to_bad_fd255.tests')
-rwxr-xr-x | shell/hush_test/hush-redir/redir_to_bad_fd255.tests | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/shell/hush_test/hush-redir/redir_to_bad_fd255.tests b/shell/hush_test/hush-redir/redir_to_bad_fd255.tests new file mode 100755 index 0000000..2266af6 --- /dev/null +++ b/shell/hush_test/hush-redir/redir_to_bad_fd255.tests @@ -0,0 +1,3 @@ +# ash uses fd 10 (usually) for reading the script +echo LOST >&255 +echo OK |