Commit 890f1fa848

Andrew Kelley <andrew@ziglang.org>
2025-07-11 21:07:06
make msghdr.iovlen unsigned
I don't care what C headers say. This value is never supposed to be negative.
1 parent 9a1f4cb
Changed files (2)
lib
lib/std/c.zig
@@ -4110,7 +4110,7 @@ pub const msghdr_const = switch (native_os) {
         /// scatter/gather array
         iov: [*]const iovec_const,
         /// # elements in iov
-        iovlen: i32,
+        iovlen: u32,
         /// ancillary data
         control: ?*const anyopaque,
         /// ancillary data buffer len
@@ -4122,7 +4122,7 @@ pub const msghdr_const = switch (native_os) {
         name: ?*const anyopaque,
         namelen: socklen_t,
         iov: [*]const iovec,
-        iovlen: c_int,
+        iovlen: c_uint,
         control: ?*const anyopaque,
         controllen: socklen_t,
         flags: c_int,
lib/std/net.zig
@@ -2125,7 +2125,7 @@ pub const Stream = struct {
                 return .{ .handle = w.file_writer.file.handle };
             }
 
-            fn addBuf(v: []posix.iovec_const, i: *usize, bytes: []const u8) void {
+            fn addBuf(v: []posix.iovec_const, i: *@FieldType(posix.msghdr_const, "iovlen"), bytes: []const u8) void {
                 // OS checks ptr addr before length so zero length vectors must be omitted.
                 if (bytes.len == 0) return;
                 if (v.len - i.* == 0) return;