[PATCH] Cygwin: pty: Fix write data handling in pcon_start phase
Takashi Yano
takashi.yano@nifty.ne.jp
Wed Mar 25 13:08:32 GMT 2026
If the 'for' loop in pcon_start handling in master write() does not
break, 'ptr' and 'len' loose the chance to fixup the value. In this
case, all data in 'ptr' are processed, so the 'len' should be 0.
1 byte is consistently consumed in each iteration in the 'for' loop,
so this patch fixups 'ptr' and 'len' in every iterations instead of
fixing-up at break.
Fixes: 9d7440036580 ("Cygwin: pty: Fix handling of data after CSI6n response")
Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
Reviewed-by:
---
winsup/cygwin/fhandler/pty.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/winsup/cygwin/fhandler/pty.cc b/winsup/cygwin/fhandler/pty.cc
index 098c72f72..8e6fb9c23 100644
--- a/winsup/cygwin/fhandler/pty.cc
+++ b/winsup/cygwin/fhandler/pty.cc
@@ -2257,6 +2257,8 @@ fhandler_pty_master::write (const void *ptr, size_t len)
}
else
line_edit (p + i, 1, ti, &ret);
+ len = orig_len - i - 1;
+ ptr = p + i + 1;
if (state == 1 && p[i] == 'R')
state = 2;
if (state == 2)
@@ -2266,8 +2268,6 @@ fhandler_pty_master::write (const void *ptr, size_t len)
the response sequence should not be written. */
if (!get_ttyp ()->req_xfer_input)
WriteFile (to_slave_nat, wpbuf, ixput, &n, NULL);
- len = orig_len - i - 1;
- ptr = p + i + 1;
ixput = 0;
state = 0;
get_ttyp ()->req_xfer_input = false;
--
2.51.0
More information about the Cygwin-patches
mailing list