[newlib-cygwin] Cygwin: pipe: Fix raw_write() for non-cygwin pipe with size zero.

Takashi Yano tyan0@sourceware.org
Thu Nov 11 09:18:47 GMT 2021


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

commit 576ace1f2f977342b837d2da3a23c5c9b0f61af1
Author: Takashi Yano <takashi.yano@nifty.ne.jp>
Date:   Thu Nov 11 12:30:24 2021 +0900

    Cygwin: pipe: Fix raw_write() for non-cygwin pipe with size zero.
    
    - Currently, raw_write() fails to handle size zero pipe which may
      be created by non-cygwin apps (e.g. Windows native ninja). This
      patch fixes the issue.
    
    Addresses:
      https://cygwin.com/pipermail/cygwin/2021-November/249844.html

Diff:
---
 winsup/cygwin/fhandler_pipe.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/winsup/cygwin/fhandler_pipe.cc b/winsup/cygwin/fhandler_pipe.cc
index 13731437e..9392a28c1 100644
--- a/winsup/cygwin/fhandler_pipe.cc
+++ b/winsup/cygwin/fhandler_pipe.cc
@@ -449,7 +449,7 @@ fhandler_pipe_fifo::raw_write (const void *ptr, size_t len)
       return -1;
     }
 
-  if (len <= pipe_buf_size)
+  if (len <= pipe_buf_size || pipe_buf_size == 0)
     chunk = len;
   else if (is_nonblocking ())
     chunk = len = pipe_buf_size;


More information about the Cygwin-cvs mailing list