From b215f8667a0cc59888926fcfcbb4be4370bd2216 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sun, 19 Oct 2025 07:09:28 -0700 Subject: [PATCH] std.Io.net.HostName.ResolvConf: ignore nameservers above max --- lib/std/Io/net/HostName.zig | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/std/Io/net/HostName.zig b/lib/std/Io/net/HostName.zig index 4cd0621b97..376f798e3e 100644 --- a/lib/std/Io/net/HostName.zig +++ b/lib/std/Io/net/HostName.zig @@ -310,6 +310,8 @@ pub const ResolvConf = struct { search_buffer: [max_len]u8, search_len: usize, + /// According to resolv.conf(5) there is a maximum of 3 nameservers in this + /// file. pub const max_nameservers = 3; /// Returns `error.StreamTooLong` if a line is longer than 512 bytes. @@ -394,9 +396,10 @@ pub const ResolvConf = struct { } fn addNumeric(rc: *ResolvConf, io: Io, name: []const u8, port: u16) !void { - assert(rc.nameservers_len < rc.nameservers_buffer.len); - rc.nameservers_buffer[rc.nameservers_len] = try .resolve(io, name, port); - rc.nameservers_len += 1; + if (rc.nameservers_len < rc.nameservers_buffer.len) { + rc.nameservers_buffer[rc.nameservers_len] = try .resolve(io, name, port); + rc.nameservers_len += 1; + } } pub fn nameservers(rc: *const ResolvConf) []const IpAddress {