diff --git a/lib/std/zig.zig b/lib/std/zig.zig index fa45af129c3878233727e4e4ab26611c0a9529c1..d113129b7e7aa48b042fed5d6949e64a2dcf2984 100644 --- a/lib/std/zig.zig +++ b/lib/std/zig.zig @@ -534,6 +534,11 @@ pub fn readSourceFileToEndAlloc(gpa: Allocator, file_reader: *std.fs.File.Reader var buffer: std.ArrayListAlignedUnmanaged(u8, .@"2") = .empty; defer buffer.deinit(gpa); + if (file_reader.getSize()) |size| { + const casted_size = std.math.cast(u32, size) orelse return error.StreamTooLong; + try buffer.ensureTotalCapacityPrecise(gpa, casted_size); + } else |_| {} + try file_reader.interface.appendRemaining(gpa, .@"2", &buffer, .limited(max_src_size)); // Detect unsupported file types with their Byte Order Mark