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");...@@ -9,6 +9,7 @@ const Package = @import("../Package.zig");
99
10pub const max_bytes = 10 * 1024 * 1024;10pub const max_bytes = 10 * 1024 * 1024;
11pub const basename = "build.zig.zon";11pub const basename = "build.zig.zon";
12pub const max_name_len = 32;
1213
13pub const Dependency = struct {14pub const Dependency = struct {
14 location: Location,15 location: Location,
...@@ -365,6 +366,11 @@ const Parse = struct {...@@ -365,6 +366,11 @@ const Parse = struct {
365 if (!std.zig.isValidId(name))366 if (!std.zig.isValidId(name))
366 return fail(p, main_token, "name must be a valid bare zig identifier (hint: switch from string to enum literal)", .{});367 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
368 return name;374 return name;
369 }375 }
370376
...@@ -375,6 +381,11 @@ const Parse = struct {...@@ -375,6 +381,11 @@ const Parse = struct {
375 if (mem.startsWith(u8, ident_name, "@"))381 if (mem.startsWith(u8, ident_name, "@"))
376 return fail(p, main_token, "name must be a valid bare zig identifier", .{});382 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
378 return ident_name;389 return ident_name;
379 }390 }
380391