diff options
| author | Cameron Conn <camconn@users.noreply.github.com> | 2021-02-01 14:27:39 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-01 15:27:39 -0500 |
| commit | 683d3f72427b39bea5827a0a1c1fc4c74dbe246e (patch) | |
| tree | 55bcfefa2dab7c05d2301c243a5b262709688092 /lib/std/pdb.zig | |
| parent | 446ebddb937ccc8bea7060b74268e90702656fde (diff) | |
| download | zig-683d3f72427b39bea5827a0a1c1fc4c74dbe246e.tar.gz zig-683d3f72427b39bea5827a0a1c1fc4c74dbe246e.zip | |
Don't read more bytes than exist in MsfStream (#7839)
Diffstat (limited to 'lib/std/pdb.zig')
| -rw-r--r-- | lib/std/pdb.zig | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/std/pdb.zig b/lib/std/pdb.zig index 41356e84f5..6a47cd6e8b 100644 --- a/lib/std/pdb.zig +++ b/lib/std/pdb.zig @@ -662,6 +662,7 @@ const MsfStream = struct { fn read(self: *MsfStream, buffer: []u8) !usize { var block_id = @intCast(usize, self.pos / self.block_size); + if (block_id >= self.blocks.len) return 0; // End of Stream var block = self.blocks[block_id]; var offset = self.pos % self.block_size; @@ -680,6 +681,7 @@ const MsfStream = struct { if (offset == self.block_size) { offset = 0; block_id += 1; + if (block_id >= self.blocks.len) break; // End of Stream block = self.blocks[block_id]; try self.in_file.seekTo(block * self.block_size); } |
