zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit f5cb3fc688768edea283f497a31e714ad387c207 (tree)
parent acdb859644be344f5e62578ad19a699d94a642a6
Author: Jonathan S <gereeter+code@gmail.com>
Date:   Tue, 21 Dec 2021 13:11:14 -0600

Only check the file's length once in pdb.Msf.init

Diffstat:
Mlib/std/pdb.zig | 5+++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/std/pdb.zig b/lib/std/pdb.zig @@ -868,7 +868,8 @@ const Msf = struct { return error.InvalidDebugInfo; if (superblock.FreeBlockMapBlock != 1 and superblock.FreeBlockMapBlock != 2) return error.InvalidDebugInfo; - if (superblock.NumBlocks * superblock.BlockSize != try file.getEndPos()) + const file_len = try file.getEndPos(); + if (superblock.NumBlocks * superblock.BlockSize != file_len) return error.InvalidDebugInfo; switch (superblock.BlockSize) { // llvm only supports 4096 but we can handle any of these values @@ -919,7 +920,7 @@ const Msf = struct { const block_id = try directory.reader().readIntLittle(u32); const n = (block_id % superblock.BlockSize); // 0 is for SuperBlock, 1 and 2 for FPMs. - if (block_id == 0 or n == 1 or n == 2 or block_id * superblock.BlockSize > try file.getEndPos()) + if (block_id == 0 or n == 1 or n == 2 or block_id * superblock.BlockSize > file_len) return error.InvalidBlockIndex; blocks[j] = block_id; }