Cygwin: ctty: Add missing fixup_after_{exec,fork}() call.

Previously, fixup_after_{exec,fork}() calls for CTTY were missing.
This patch fixes that.

Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
This commit is contained in:
Takashi Yano 2023-03-07 00:13:55 +09:00
parent 77f324ae03
commit 8d0b9ab672
2 changed files with 12 additions and 0 deletions

View File

@ -913,6 +913,8 @@ dtable::fixup_after_exec ()
else if (i <= 2)
SetStdHandle (std_consts[i], fh->get_output_handle ());
}
if (cygheap->ctty)
cygheap->ctty->fixup_after_exec ();
}
void
@ -939,6 +941,9 @@ dtable::fixup_after_fork (HANDLE parent)
else if (i <= 2)
SetStdHandle (std_consts[i], fh->get_output_handle ());
}
if (cygheap->ctty)
cygheap->ctty->fixup_after_fork (parent);
}
static void

View File

@ -622,6 +622,7 @@ fhandler_console::set_unit ()
pc.file_attributes (FILE_ATTRIBUTE_NORMAL);
else
{
_tc = NULL;
set_handle (NULL);
set_output_handle (NULL);
created = false;
@ -4046,6 +4047,12 @@ fhandler_console::fixup_after_fork_exec (bool execing)
set_unit ();
setup_io_mutex ();
wpbuf.init (get_output_handle ());
if (cygheap->ctty == this && !get_handle () && !get_output_handle ())
{
close_with_arch ();
cygheap->ctty = NULL;
return;
}
if (!execing)
return;