Commit 2cc33367eb

Jonathan Marler <johnnymarler@gmail.com>
2022-02-07 09:49:15
fix bug when ReadFile returns synchronously in collectOutputWindows
1 parent 4fddb59
Changed files (1)
lib/std/child_process.zig
@@ -270,12 +270,14 @@ pub const ChildProcess = struct {
             try buf.ensureTotalCapacity(new_capacity);
             const next_buf = buf.unusedCapacitySlice();
             if (next_buf.len == 0) return .full;
-            const read_result = windows.kernel32.ReadFile(handle, next_buf.ptr, math.cast(u32, next_buf.len) catch maxInt(u32), null, overlapped);
+            var read_bytes: u32 = undefined;
+            const read_result = windows.kernel32.ReadFile(handle, next_buf.ptr, math.cast(u32, next_buf.len) catch maxInt(u32), &read_bytes, overlapped);
             if (read_result == 0) return switch (windows.kernel32.GetLastError()) {
                 .IO_PENDING => .pending,
                 .BROKEN_PIPE => .closed,
                 else => |err| windows.unexpectedError(err),
             };
+            buf.items.len += read_bytes;
         }
     }