Cygwin: console: Fix clean up conditions in close()

Previously, the condition to clean up input/output mode was based
on wrong premise. This patch fixes that.

Fixes: 8ee8b0c974 ("Cygwin: console: Use GetCurrentProcessId() instead of myself->dwProcessId")
Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
This commit is contained in:
Takashi Yano 2024-11-08 20:02:35 +09:00
parent 90031ffe91
commit 30d2669478
1 changed files with 3 additions and 3 deletions

View File

@ -1976,7 +1976,8 @@ fhandler_console::close ()
acquire_output_mutex (mutex_timeout); acquire_output_mutex (mutex_timeout);
if (shared_console_info[unit]) if (shared_console_info[unit] && !myself->cygstarted
&& (dev_t) myself->ctty == get_device ())
{ {
/* Restore console mode if this is the last closure. */ /* Restore console mode if this is the last closure. */
OBJECT_BASIC_INFORMATION obi; OBJECT_BASIC_INFORMATION obi;
@ -1984,8 +1985,7 @@ fhandler_console::close ()
status = NtQueryObject (get_handle (), ObjectBasicInformation, status = NtQueryObject (get_handle (), ObjectBasicInformation,
&obi, sizeof obi, NULL); &obi, sizeof obi, NULL);
if (NT_SUCCESS (status) if (NT_SUCCESS (status)
&& obi.HandleCount <= (myself->cygstarted ? 2 : 3) && obi.HandleCount == (con.owner == GetCurrentProcessId () ? 2 : 3))
&& (dev_t) myself->ctty == get_device ())
{ {
/* Cleaning-up console mode for cygwin apps. */ /* Cleaning-up console mode for cygwin apps. */
set_output_mode (tty::restore, &get_ttyp ()->ti, &handle_set); set_output_mode (tty::restore, &get_ttyp ()->ti, &handle_set);