From 88b80975bb8794f1e9512265dc9f6868d340a43a Mon Sep 17 00:00:00 2001 From: Ken Brown Date: Thu, 23 Jan 2020 16:31:05 +0000 Subject: [PATCH] Cygwin: FIFO: tweak fcntl and dup when O_PATH is set fhandler_fifo::fcntl and fhandler_fifo::dup now call the corresponding fhandler_base methods if the FIFO was opened with the O_PATH flag. --- winsup/cygwin/fhandler_fifo.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/fhandler_fifo.cc b/winsup/cygwin/fhandler_fifo.cc index 8cbab353c..a338f12cc 100644 --- a/winsup/cygwin/fhandler_fifo.cc +++ b/winsup/cygwin/fhandler_fifo.cc @@ -997,7 +997,7 @@ fhandler_fifo::close () int fhandler_fifo::fcntl (int cmd, intptr_t arg) { - if (cmd != F_SETFL || nohandle ()) + if (cmd != F_SETFL || nohandle () || (get_flags () & O_PATH)) return fhandler_base::fcntl (cmd, arg); const bool was_nonblocking = is_nonblocking (); @@ -1014,6 +1014,9 @@ fhandler_fifo::dup (fhandler_base *child, int flags) int ret = -1; fhandler_fifo *fhf = NULL; + if (get_flags () & O_PATH) + return fhandler_base::dup (child, flags); + if (fhandler_base::dup (child, flags)) goto out;