[PATCH] Cygwin: pty: Call FreeConsole() only if attached to current pty.
Takashi Yano
takashi.yano@nifty.ne.jp
Sun May 17 02:34:04 GMT 2020
- 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;
@@ -739,7 +739,7 @@ fhandler_pty_slave::~fhandler_pty_slave ()
if (used == 0)
{
init_console_handler (false);
- if (freeconsole_on_close)
+ if (freeconsole_on_close && get_minor () == pcon_attached_to)
{
FreeConsole ();
pcon_attached_to = -1;
@@ -3006,7 +3006,7 @@ fhandler_pty_slave::fixup_after_exec ()
if (used == 1 /* About to close this tty */)
{
init_console_handler (false);
- if (freeconsole_on_close)
+ if (freeconsole_on_close && get_minor () == pcon_attached_to)
{
FreeConsole ();
pcon_attached_to = -1;
--
2.21.0
More information about the Cygwin-patches
mailing list