Skip to content

Commit da1ffae

Browse files
committed
std: fix undefined value in Target.Query
This is an RLS footgun. Resolves: #21834
1 parent 41786fa commit da1ffae

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

lib/std/Target/Query.zig

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -544,29 +544,33 @@ fn parseOs(result: *Query, diags: *ParseOptions.Diagnostics, text: []const u8) !
544544
const version_text = it.rest();
545545
if (version_text.len > 0) switch (tag.versionRangeTag()) {
546546
.none => return error.InvalidOperatingSystemVersion,
547-
.semver, .hurd, .linux => range: {
547+
.semver, .hurd, .linux => {
548548
var range_it = mem.splitSequence(u8, version_text, "...");
549549
result.os_version_min = .{
550550
.semver = parseVersion(range_it.first()) catch |err| switch (err) {
551551
error.Overflow => return error.InvalidOperatingSystemVersion,
552552
error.InvalidVersion => return error.InvalidOperatingSystemVersion,
553553
},
554554
};
555-
result.os_version_max = .{
556-
.semver = parseVersion(range_it.next() orelse break :range) catch |err| switch (err) {
557-
error.Overflow => return error.InvalidOperatingSystemVersion,
558-
error.InvalidVersion => return error.InvalidOperatingSystemVersion,
559-
},
560-
};
555+
if (range_it.next()) |v| {
556+
result.os_version_max = .{
557+
.semver = parseVersion(v) catch |err| switch (err) {
558+
error.Overflow => return error.InvalidOperatingSystemVersion,
559+
error.InvalidVersion => return error.InvalidOperatingSystemVersion,
560+
},
561+
};
562+
}
561563
},
562-
.windows => range: {
564+
.windows => {
563565
var range_it = mem.splitSequence(u8, version_text, "...");
564566
result.os_version_min = .{
565567
.windows = try Target.Os.WindowsVersion.parse(range_it.first()),
566568
};
567-
result.os_version_max = .{
568-
.windows = try Target.Os.WindowsVersion.parse(range_it.next() orelse break :range),
569-
};
569+
if (range_it.next()) |v| {
570+
result.os_version_max = .{
571+
.windows = try Target.Os.WindowsVersion.parse(v),
572+
};
573+
}
570574
},
571575
};
572576
}

0 commit comments

Comments
 (0)