[newlib-cygwin] Cygwin: pipes: fix a bug in raw_write

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


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

commit 464f7145f650e85f89ac288355d4daba7e682156
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Fri Sep 3 10:24:15 2021 +0200

    Cygwin: pipes: fix a bug in raw_write
    
    The buffer pointer is incremented by "chunk", which is what we
    typically try to write, but this isn't what actually got written.
    Increment the buffer pointer by what we actually wrote, as returned
    by NtWriteFile.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

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 2dec0a848..85ab3cf55 100644
--- a/winsup/cygwin/fhandler_pipe.cc
+++ b/winsup/cygwin/fhandler_pipe.cc
@@ -380,7 +380,7 @@ fhandler_pipe::raw_write (const void *ptr, size_t len)
 	     buffer doesn't have sufficient space. */
 	  if (nbytes_now == 0)
 	    set_errno (EAGAIN);
-	  ptr = ((char *) ptr) + chunk;
+	  ptr = ((char *) ptr) + nbytes_now;
 	  nbytes += nbytes_now;
 	}
       else if (STATUS_PIPE_IS_CLOSED (status))


More information about the Cygwin-cvs mailing list