From 46ee3d1732b5cd22a36191196738ab71313db780 Mon Sep 17 00:00:00 2001 From: mlugg Date: Sun, 5 Jan 2025 11:16:48 +0000 Subject: [PATCH] std: fix undefined value in Target.Query This is an RLS footgun. Resolves: #21834 --- lib/std/Target/Query.zig | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/lib/std/Target/Query.zig b/lib/std/Target/Query.zig index 144b2d60affe..50db1fed5e7c 100644 --- a/lib/std/Target/Query.zig +++ b/lib/std/Target/Query.zig @@ -544,7 +544,7 @@ fn parseOs(result: *Query, diags: *ParseOptions.Diagnostics, text: []const u8) ! const version_text = it.rest(); if (version_text.len > 0) switch (tag.versionRangeTag()) { .none => return error.InvalidOperatingSystemVersion, - .semver, .hurd, .linux => range: { + .semver, .hurd, .linux => { var range_it = mem.splitSequence(u8, version_text, "..."); result.os_version_min = .{ .semver = parseVersion(range_it.first()) catch |err| switch (err) { @@ -552,21 +552,25 @@ fn parseOs(result: *Query, diags: *ParseOptions.Diagnostics, text: []const u8) ! error.InvalidVersion => return error.InvalidOperatingSystemVersion, }, }; - result.os_version_max = .{ - .semver = parseVersion(range_it.next() orelse break :range) catch |err| switch (err) { - error.Overflow => return error.InvalidOperatingSystemVersion, - error.InvalidVersion => return error.InvalidOperatingSystemVersion, - }, - }; + if (range_it.next()) |v| { + result.os_version_max = .{ + .semver = parseVersion(v) catch |err| switch (err) { + error.Overflow => return error.InvalidOperatingSystemVersion, + error.InvalidVersion => return error.InvalidOperatingSystemVersion, + }, + }; + } }, - .windows => range: { + .windows => { var range_it = mem.splitSequence(u8, version_text, "..."); result.os_version_min = .{ .windows = try Target.Os.WindowsVersion.parse(range_it.first()), }; - result.os_version_max = .{ - .windows = try Target.Os.WindowsVersion.parse(range_it.next() orelse break :range), - }; + if (range_it.next()) |v| { + result.os_version_max = .{ + .windows = try Target.Os.WindowsVersion.parse(v), + }; + } }, }; }