Cygwin: pty: Fix a bug in the code removing set window title sequence.

- Commit 4e08fe42c9 has a bug which
  may cause infinite loop in pty_master_fwd_thread(). This patch
  fixes the issue.
This commit is contained in:
Takashi Yano via Cygwin-patches 2020-08-31 21:02:13 +09:00 committed by Corinna Vinschen
parent 4e08fe42c9
commit 6871c8418d
1 changed files with 5 additions and 8 deletions

View File

@ -2168,17 +2168,14 @@ fhandler_pty_master::pty_master_fwd_thread ()
/* Remove Set title sequence */ /* Remove Set title sequence */
char *p0, *p1; char *p0, *p1;
p0 = outbuf; p0 = outbuf;
while ((p0 = (char *) memmem (p0, rlen, "\033]0;", 4))) while ((p0 = (char *) memmem (p0, rlen, "\033]0;", 4))
{ && (p1 = (char *) memchr (p0, '\007', rlen-(p0-outbuf))))
p1 = (char *) memchr (p0, '\007', rlen - (p0 - outbuf));
if (p1)
{ {
memmove (p0, p1 + 1, rlen - (p1 + 1 - outbuf)); memmove (p0, p1 + 1, rlen - (p1 + 1 - outbuf));
rlen -= p1 + 1 - p0; rlen -= p1 + 1 - p0;
wlen = rlen; wlen = rlen;
} }
} }
}
/* Remove CSI > Pm m */ /* Remove CSI > Pm m */
int state = 0; int state = 0;
int start_at = 0; int start_at = 0;