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

Takashi Yano via Cygwin-cvs <[email protected]> Fri, 19 Dec 2025 18:28:28 +0000 (GMT)
Newsgroups gmane.os.cygwin.cvs
Message-ID <[email protected]>
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=3c5e6fce0be78c645b743dbe2c4f6363e1fc8398

commit 3c5e6fce0be78c645b743dbe2c4f6363e1fc8398
Author: Takashi Yano <[email protected]>
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 <[email protected]>
    Signed-off-by: Takashi Yano <[email protected]>
    (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')
 	      {