From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2155) id 937BC3851C17; Mon, 31 Aug 2020 14:48:04 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 937BC3851C17 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Corinna Vinschen To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: pty: Fix a bug in the code removing set window title sequence. X-Act-Checkin: newlib-cygwin X-Git-Author: Takashi Yano via Cygwin-patches X-Git-Refname: refs/heads/master X-Git-Oldrev: 4e08fe42c9f3fdba63a57a8e3a6d705c4e10f50f X-Git-Newrev: 6871c8418d102c8cfc6185757210d5c7f2dd4d46 Message-Id: <20200831144804.937BC3851C17@sourceware.org> Date: Mon, 31 Aug 2020 14:48:04 +0000 (GMT) X-BeenThere: cygwin-cvs@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component git logs List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 Aug 2020 14:48:04 -0000 https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=6871c8418d102c8cfc6185757210d5c7f2dd4d46 commit 6871c8418d102c8cfc6185757210d5c7f2dd4d46 Author: Takashi Yano via Cygwin-patches Date: Mon Aug 31 21:02:13 2020 +0900 Cygwin: pty: Fix a bug in the code removing set window title sequence. - Commit 4e08fe42c9f3fdba63a57a8e3a6d705c4e10f50f has a bug which may cause infinite loop in pty_master_fwd_thread(). This patch fixes the issue. Diff: --- winsup/cygwin/fhandler_tty.cc | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc index e4e94f114..8bf39c3e6 100644 --- a/winsup/cygwin/fhandler_tty.cc +++ b/winsup/cygwin/fhandler_tty.cc @@ -2168,15 +2168,12 @@ fhandler_pty_master::pty_master_fwd_thread () /* Remove Set title sequence */ char *p0, *p1; 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)); - rlen -= p1 + 1 - p0; - wlen = rlen; - } + memmove (p0, p1 + 1, rlen - (p1 + 1 - outbuf)); + rlen -= p1 + 1 - p0; + wlen = rlen; } } /* Remove CSI > Pm m */