On Jul 24 20:57, Takashi Yano wrote: > Previously, process_fd failed to correctly handle fhandlers using an > archetype. This was due to the missing PATH_OPEN flag in path_conv, > which caused build_fh_pc() to skip archetype initialization. The > root cause was a bug where open() did not set the PATH_OPEN flag > for fhandlers using an archetype. > > This patch introduces a new method, path_conv::set_isopen(), to > explicitly set the PATH_OPEN flag in path_flags in fhandler_base:: > open_with_arch().
Wouldn't this patch fix the problem as well? diff --git a/winsup/cygwin/fhandler/console.cc b/winsup/cygwin/fhandler/console.cc index 887e2ef722bf..2801c806edd5 100644 --- a/winsup/cygwin/fhandler/console.cc +++ b/winsup/cygwin/fhandler/console.cc @@ -4311,7 +4311,7 @@ fhandler_console::init (HANDLE h, DWORD a, mode_t bin, int64_t dummy) { // this->fhandler_termios::init (h, mode, bin); /* Ensure both input and output console handles are open */ - int flags = 0; + int flags = PC_OPEN; a &= GENERIC_READ | GENERIC_WRITE; if (a == GENERIC_READ) diff --git a/winsup/cygwin/fhandler/pty.cc b/winsup/cygwin/fhandler/pty.cc index 77a363eb0e3b..10785e240091 100644 --- a/winsup/cygwin/fhandler/pty.cc +++ b/winsup/cygwin/fhandler/pty.cc @@ -1015,7 +1015,7 @@ fhandler_pty_slave::close (int flag) int fhandler_pty_slave::init (HANDLE h, DWORD a, mode_t, int64_t dummy) { - int flags = 0; + int flags = PC_OPEN; a &= GENERIC_READ | GENERIC_WRITE; if (a == GENERIC_READ) Corinna