mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 05:44:20 +00:00
std.compress.zstd.Decompress: fix bytes_written tracking
This commit is contained in:
parent
da51e94d50
commit
8752d80c84
1 changed files with 4 additions and 5 deletions
|
|
@ -224,11 +224,6 @@ fn readInFrame(d: *Decompress, w: *Writer, limit: Limit, state: *State.InFrame)
|
|||
}
|
||||
|
||||
if (bytes_written > frame_block_size_max) return error.BlockOversize;
|
||||
|
||||
state.decompressed_size += bytes_written;
|
||||
if (state.frame.content_size) |size| {
|
||||
if (state.decompressed_size > size) return error.MalformedFrame;
|
||||
}
|
||||
},
|
||||
.reserved => return error.ReservedBlock,
|
||||
}
|
||||
|
|
@ -240,6 +235,8 @@ fn readInFrame(d: *Decompress, w: *Writer, limit: Limit, state: *State.InFrame)
|
|||
}
|
||||
}
|
||||
|
||||
state.decompressed_size += bytes_written;
|
||||
|
||||
if (block_header.last) {
|
||||
if (state.frame.has_checksum) {
|
||||
const expected_checksum = try in.takeInt(u32, .little);
|
||||
|
|
@ -254,6 +251,8 @@ fn readInFrame(d: *Decompress, w: *Writer, limit: Limit, state: *State.InFrame)
|
|||
}
|
||||
}
|
||||
d.state = .new_frame;
|
||||
} else if (state.frame.content_size) |content_size| {
|
||||
if (state.decompressed_size > content_size) return error.MalformedFrame;
|
||||
}
|
||||
|
||||
return bytes_written;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue