diff options
| author | mlugg <mlugg@mlugg.co.uk> | 2025-01-05 11:16:48 +0000 |
|---|---|---|
| committer | Matthew Lugg <mlugg@mlugg.co.uk> | 2025-01-05 16:26:21 +0000 |
| commit | da1ffae7d23b04c4efc5e99ba153d8c45eb980f3 (patch) | |
| tree | d5fc53a7440e920dc1314f5ebc1b75032c514e5d /lib/std/Target/Query.zig | |
| parent | 41786fabfca5aa4fd5cab54a22c6596fdaa159d4 (diff) | |
| download | zig-da1ffae7d23b04c4efc5e99ba153d8c45eb980f3.tar.gz zig-da1ffae7d23b04c4efc5e99ba153d8c45eb980f3.zip | |
std: fix undefined value in Target.Query
This is an RLS footgun.
Resolves: #21834
Diffstat (limited to 'lib/std/Target/Query.zig')
| -rw-r--r-- | lib/std/Target/Query.zig | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/lib/std/Target/Query.zig b/lib/std/Target/Query.zig index 144b2d60af..50db1fed5e 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), + }; + } }, }; } |
