[PATCH 2/3] Cygwin: re-implement fhandler_fifo::open with O_PATH

Ken Brown kbrown@cornell.edu
Thu Jan 23 16:31:00 GMT 2020


If the O_PATH flag is set, fhandler_fifo::open now simply calls
fhandler_base::open_fs.

The previous attempt to handle O_PATH in commit aa55d22c, "Cygwin:
honor the O_PATH flag when opening a FIFO", fixed a hang but otherwise
didn't do anything useful.
---
 winsup/cygwin/fhandler_fifo.cc | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/winsup/cygwin/fhandler_fifo.cc b/winsup/cygwin/fhandler_fifo.cc
index fd8223000..8cbab353c 100644
--- a/winsup/cygwin/fhandler_fifo.cc
+++ b/winsup/cygwin/fhandler_fifo.cc
@@ -453,17 +453,13 @@ fhandler_fifo::open (int flags, mode_t)
   } res;
 
   if (flags & O_PATH)
-    {
-      query_open (query_read_attributes);
-      nohandle (true);
-    }
+    return open_fs (flags);
 
   /* Determine what we're doing with this fhandler: reading, writing, both */
   switch (flags & O_ACCMODE)
     {
     case O_RDONLY:
-      if (!query_open ())
-	reader = true;
+      reader = true;
       break;
     case O_WRONLY:
       writer = true;
@@ -585,8 +581,6 @@ fhandler_fifo::open (int flags, mode_t)
 	    }
 	}
     }
-  if (query_open ())
-    res = success;
 out:
   if (res == error_set_errno)
     __seterrno ();
-- 
2.21.0



More information about the Cygwin-patches mailing list