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

commit 464f7145f650e85f89ac288355d4daba7e682156
Author: Corinna Vinschen <[email protected]>
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 <[email protected]>

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))

Reply via email to