[newlib-cygwin/cygwin-3_6-branch] Cygwin: pty: Fix state initialization in pty_master_fwd_thread

Takashi Yano tyan0@sourceware.org
Fri Dec 19 18:28:28 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=3c5e6fce0be78c645b743dbe2c4f6363e1fc8398

commit 3c5e6fce0be78c645b743dbe2c4f6363e1fc8398
Author: Takashi Yano <takashi.yano@nifty.ne.jp>
Date:   Fri Dec 19 13:31:25 2025 +0900

    Cygwin: pty: Fix state initialization in pty_master_fwd_thread
    
    If the ESC sequence ends at the middle of the sequence, the 'state'
    remains non-zero. This prevent the next state machine from working
    as expected. On contrary, 'start_at' is set in each parser, so is
    not necessary to be initialized.
    
    Fixes: 10d083c745dd ("Cygwin: pty: Inherit typeahead data between two input pipes.")
    Suggested-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    (cherry picked from commit 53bbf4756c7f7c4e300406cd7f33a876ca9b4731)

Diff:
---
 winsup/cygwin/fhandler/pty.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/winsup/cygwin/fhandler/pty.cc b/winsup/cygwin/fhandler/pty.cc
index a91743875..03fd47858 100644
--- a/winsup/cygwin/fhandler/pty.cc
+++ b/winsup/cygwin/fhandler/pty.cc
@@ -2703,7 +2703,6 @@ fhandler_pty_master::pty_master_fwd_thread (const master_fwd_thread_param_t *p)
 
 	  /* Remove CSI > Pm m */
 	  state = 0;
-	  start_at = 0;
 	  for (DWORD i = 0; i < rlen; i++)
 	    if (outbuf[i] == '\033')
 	      {
@@ -2731,6 +2730,7 @@ fhandler_pty_master::pty_master_fwd_thread (const master_fwd_thread_param_t *p)
 	      state = 0;
 
 	  /* Remove OSC Ps ; ? BEL/ST */
+	  state = 0;
 	  for (DWORD i = 0; i < rlen; i++)
 	    if (state == 0 && outbuf[i] == '\033')
 	      {


More information about the Cygwin-cvs mailing list