https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=b7e429420063264d0be7ee6804f3e6f143f66232
commit b7e429420063264d0be7ee6804f3e6f143f66232 Author: Takashi Yano <takashi.y...@nifty.ne.jp> Date: Thu Sep 5 19:44:41 2019 +0900 Cygwin: pty: Fix potential state mismatch regarding pseudo console. - PTY with pseudo console support sitll has problem which potentially cause state mismatch between state variable and real console state. This patch fixes this issue. Diff: --- winsup/cygwin/dtable.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc index 4e9b6ed..7b2e520 100644 --- a/winsup/cygwin/dtable.cc +++ b/winsup/cygwin/dtable.cc @@ -159,14 +159,19 @@ dtable::stdio_init () { bool attached = !!fhandler_console::get_console_process_id (ptys->getHelperProcessId (), true); - if (!attached) + if (attached) + break; + else { /* Not attached to pseudo console in fork() or spawn() by some reason. This happens if the executable is a windows GUI binary, such as mintty. */ FreeConsole (); if (AttachConsole (ptys->getHelperProcessId ())) - break; + { + ptys->fixup_after_attach (false); + break; + } } } }