On May 17 11:34, Takashi Yano via Cygwin-patches wrote: > - After commit 071b8e0cbd4be33449c12bb0d58f514ed8ef893c, the problem > reported in https://cygwin.com/pipermail/cygwin/2020-May/244873.html > occurs. This is due to freeing console device accidentally rather > than pseudo console. This patch makes sure to call FreeConsole() > only if the process is attached to the pseudo console of the current > pty. > --- > winsup/cygwin/fhandler_tty.cc | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc > index 8547ec7c4..467784255 100644 > --- a/winsup/cygwin/fhandler_tty.cc > +++ b/winsup/cygwin/fhandler_tty.cc > @@ -708,7 +708,7 @@ fhandler_pty_slave::~fhandler_pty_slave () > if (!get_ttyp ()) > { > /* Why comes here? Who clears _tc? */ > - if (freeconsole_on_close) > + if (freeconsole_on_close && get_minor () == pcon_attached_to) > { > FreeConsole (); > pcon_attached_to = -1;
Given it's used three times, wouldn't it make sense to put the entire "if" construct into a fhandler_pty_slave inline method? Thanks, Corinna -- Corinna Vinschen Cygwin Maintainer
