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

Reply via email to