Don't read more bytes than exist in MsfStream (#7839)

This commit is contained in:
Cameron Conn
2021-02-01 14:27:39 -06:00
committed by GitHub
parent 446ebddb93
commit 683d3f7242

View File

@@ -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);
}