From 59ffa607a46135d0d02af72a40914e438e56d586 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 22 Oct 2025 06:05:55 -0700 Subject: [PATCH] std.Io.Threaded: fix sending invalid pointer OS wants valid control pointer even when len is zero --- lib/std/Io/Threaded.zig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/std/Io/Threaded.zig b/lib/std/Io/Threaded.zig index bce028c13f..4a216c5601 100644 --- a/lib/std/Io/Threaded.zig +++ b/lib/std/Io/Threaded.zig @@ -3555,7 +3555,8 @@ fn netSendOne( .namelen = addressToPosix(message.address, &addr), .iov = (&iovec)[0..1], .iovlen = 1, - .control = @constCast(message.control.ptr), + // OS returns EINVAL if this pointer is invalid even if controllen is zero. + .control = if (message.control.len == 0) null else @constCast(message.control.ptr), .controllen = @intCast(message.control.len), .flags = 0, };