[newlib-cygwin] Cygwin: fhandler_pipe.cc:nt_select: fix flags

Corinna Vinschen corinna@sourceware.org
Tue Sep 14 15:05:24 GMT 2021


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=9d4e58be76ff06a65e6f06d62ea9d1e26121b347

commit 9d4e58be76ff06a65e6f06d62ea9d1e26121b347
Author: Ken Brown <kbrown@cornell.edu>
Date:   Mon Aug 30 11:11:49 2021 -0400

    Cygwin: fhandler_pipe.cc:nt_select: fix flags

Diff:
---
 winsup/cygwin/fhandler_pipe.cc | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/winsup/cygwin/fhandler_pipe.cc b/winsup/cygwin/fhandler_pipe.cc
index 2dec0a848..b99f00c09 100644
--- a/winsup/cygwin/fhandler_pipe.cc
+++ b/winsup/cygwin/fhandler_pipe.cc
@@ -658,7 +658,7 @@ nt_create (LPSECURITY_ATTRIBUTES sa_ptr, PHANDLE r, PHANDLE w,
 				 &cygheap->installation_key,
 				 GetCurrentProcessId ());
 
-  access = GENERIC_READ | FILE_WRITE_ATTRIBUTES;
+  access = GENERIC_READ | FILE_WRITE_ATTRIBUTES | SYNCHRONIZE;
 
   ULONG pipe_type = pipe_byte ? FILE_PIPE_BYTE_STREAM_TYPE
     : FILE_PIPE_MESSAGE_TYPE;
@@ -688,8 +688,8 @@ nt_create (LPSECURITY_ATTRIBUTES sa_ptr, PHANDLE r, PHANDLE w,
       timeout.QuadPart = -500000;
       status = NtCreateNamedPipeFile (r, access, &attr, &io,
 				      FILE_SHARE_READ | FILE_SHARE_WRITE,
-				      FILE_CREATE, 0, pipe_type,
-				      FILE_PIPE_BYTE_STREAM_MODE,
+				      FILE_CREATE, FILE_SYNCHRONOUS_IO_NONALERT,
+				      pipe_type, FILE_PIPE_BYTE_STREAM_MODE,
 				      0, 1, psize, psize, &timeout);
 
       if (NT_SUCCESS (status))
@@ -737,8 +737,9 @@ nt_create (LPSECURITY_ATTRIBUTES sa_ptr, PHANDLE r, PHANDLE w,
     {
       debug_printf ("NtOpenFile: name %S", &pipename);
 
-      access = GENERIC_WRITE | FILE_READ_ATTRIBUTES;
-      status = NtOpenFile (w, access, &attr, &io, 0, 0);
+      access = GENERIC_WRITE | FILE_READ_ATTRIBUTES | SYNCHRONIZE;
+      status = NtOpenFile (w, access, &attr, &io, 0,
+			   FILE_SYNCHRONOUS_IO_NONALERT);
       if (!NT_SUCCESS (status))
 	{
 	  DWORD err = GetLastError ();


More information about the Cygwin-cvs mailing list