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