* fhandler_termios.cc (fhandler_termios::line_edit): Fix condition

for writing remaining bytes in readahead buffer in non-canonical mode.
This commit is contained in:
Corinna Vinschen 2015-02-26 15:58:04 +00:00
parent 3667a9f444
commit 31c123f982
3 changed files with 20 additions and 7 deletions

View File

@ -1,3 +1,8 @@
2015-02-26 Corinna Vinschen <corinna@vinschen.de>
* fhandler_termios.cc (fhandler_termios::line_edit): Fix condition
for writing remaining bytes in readahead buffer in non-canonical mode.
2015-02-25 Corinna Vinschen <corinna@vinschen.de> 2015-02-25 Corinna Vinschen <corinna@vinschen.de>
* sec_acl.cc (setacl): Always grant default owner entry * sec_acl.cc (setacl): Always grant default owner entry

View File

@ -393,15 +393,17 @@ fhandler_termios::line_edit (const char *rptr, size_t nread, termios& ti,
} }
/* If we didn't write all bytes in non-canonical mode, write them now. */ /* If we didn't write all bytes in non-canonical mode, write them now. */
if (!iscanon && ralen > 0) if (!iscanon && ralen > 0
&& (ret == line_edit_ok || ret == line_edit_input_done))
{ {
if (ret == line_edit_ok) int status = accept_input ();
{ if (status != 1)
int status = accept_input (); {
if (status != 1) ret = status ? line_edit_error : line_edit_pipe_full;
nread += ralen; nread += ralen;
} }
ret = line_edit_input_done; else
ret = line_edit_input_done;
} }
/* Adding one compensates for the postdecrement in the above loop. */ /* Adding one compensates for the postdecrement in the above loop. */

View File

@ -56,3 +56,9 @@ Bug Fixes
- Fix a potential heap corruption in mkgroup and mkpasswd when enumerating - Fix a potential heap corruption in mkgroup and mkpasswd when enumerating
Unix users. Unix users.
- Regression in 1.7.34: A patch to the pty handling fixing the problem
reported in https://cygwin.com/ml/cygwin-developers/2014-11/msg00000.html
was incomplete and lead to undesired buffering in non-canonical mode.
This should be fixed now.
Addresses: https://cygwin.com/ml/cygwin/2015-02/msg00608.html