From 29512f0edd9134ffe1f645ad69b5c4a3e1a7c7c3 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 3 Jul 2024 13:28:44 -0700 Subject: [PATCH] Compilation: don't give len=0 bufs to pwritev The OS returns EFAULT for undefined pointers, even when len=0. --- src/Compilation.zig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Compilation.zig b/src/Compilation.zig index 9d3a31e792..38651281b5 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -2827,6 +2827,9 @@ pub fn saveState(comp: *Compilation) !void { } fn addBuf(bufs_list: []std.posix.iovec_const, bufs_len: *usize, buf: []const u8) void { + // Even when len=0, the undefined pointer might cause EFAULT. + if (buf.len == 0) return; + const i = bufs_len.*; bufs_len.* = i + 1; bufs_list[i] = .{