diff options
author | Chet Ramey <chet.ramey@case.edu> | 2013-03-07 15:22:14 -0500 |
---|---|---|
committer | Chet Ramey <chet.ramey@case.edu> | 2013-03-07 15:22:14 -0500 |
commit | f281b8f4f8936b2713966274d9f8508a9f0910e4 (patch) | |
tree | 8bc396363c39d7ff43198c12fbe1f6418df541de /redir.c | |
parent | 4fd1af445d628b7191827a640b018315522f41d7 (diff) | |
download | android_external_bash-f281b8f4f8936b2713966274d9f8508a9f0910e4.tar.gz android_external_bash-f281b8f4f8936b2713966274d9f8508a9f0910e4.tar.bz2 android_external_bash-f281b8f4f8936b2713966274d9f8508a9f0910e4.zip |
Bash-4.2 patch 45
Diffstat (limited to 'redir.c')
-rw-r--r-- | redir.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -1007,6 +1007,16 @@ do_redirection_internal (redirect, flags) close (redirector); REDIRECTION_ERROR (r, errno, -1); } + if ((flags & RX_UNDOABLE) && (ri == r_move_input || ri == r_move_output)) + { + /* r_move_input and r_move_output add an additional close() + that needs to be undone */ + if (fcntl (redirector, F_GETFD, 0) != -1) + { + r = add_undo_redirect (redir_fd, r_close_this, -1); + REDIRECTION_ERROR (r, errno, -1); + } + } #if defined (BUFFERED_INPUT) check_bash_input (redirector); #endif |