authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-02-24 17:36:23-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-02-26 11:42:03-08:00
log76e8b297b1f0c6013d71e9ae670cb4006b3e4b76
tree9d9b0c6d9dffd5018944ed6e6fe5e018b1f1d525
parenta57b0a0f2fe5a3a0af740495c60d4f3d0b6abfec

Package.Manifest: enforce name limit of 32


1 files changed, 11 insertions(+), 0 deletions(-)

src/Package/Manifest.zig+11
......@@ -9,6 +9,7 @@ const Package = @import("../Package.zig");
99
1010pub const max_bytes = 10 * 1024 * 1024;
1111pub const basename = "build.zig.zon";
12pub const max_name_len = 32;
1213
1314pub const Dependency = struct {
1415 location: Location,
......@@ -365,6 +366,11 @@ const Parse = struct {
365366 if (!std.zig.isValidId(name))
366367 return fail(p, main_token, "name must be a valid bare zig identifier (hint: switch from string to enum literal)", .{});
367368
369 if (name.len > max_name_len)
370 return fail(p, main_token, "name '{s}' exceeds max length of {d}", .{
371 std.zig.fmtId(name), max_name_len,
372 });
373
368374 return name;
369375 }
370376
......@@ -375,6 +381,11 @@ const Parse = struct {
375381 if (mem.startsWith(u8, ident_name, "@"))
376382 return fail(p, main_token, "name must be a valid bare zig identifier", .{});
377383
384 if (ident_name.len > max_name_len)
385 return fail(p, main_token, "name '{s}' exceeds max length of {d}", .{
386 std.zig.fmtId(ident_name), max_name_len,
387 });
388
378389 return ident_name;
379390 }
380391