aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Target/Query.zig
diff options
context:
space:
mode:
authormlugg <mlugg@mlugg.co.uk>2025-01-05 11:16:48 +0000
committerMatthew Lugg <mlugg@mlugg.co.uk>2025-01-05 16:26:21 +0000
commitda1ffae7d23b04c4efc5e99ba153d8c45eb980f3 (patch)
treed5fc53a7440e920dc1314f5ebc1b75032c514e5d /lib/std/Target/Query.zig
parent41786fabfca5aa4fd5cab54a22c6596fdaa159d4 (diff)
downloadzig-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.zig26
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),
+ };
+ }
},
};
}