зеркало из
https://git.tukaani.org/xz.git
synced 2025-09-18 16:38:24 +00:00
In lzma_read_match_distances(), don't use
coder->lz.stream_end_was_reached. That variable will be removed, and the check isn't required anyway. Rearrange the check so that it doesn't make one to think that there could be an integer overflow.
Этот коммит содержится в:
родитель
a670fec802
Коммит
3e09e1c058
@ -197,12 +197,12 @@ lzma_read_match_distances(lzma_coder *coder,
|
|||||||
uint32_t limit = MATCH_MAX_LEN - *len_res;
|
uint32_t limit = MATCH_MAX_LEN - *len_res;
|
||||||
|
|
||||||
assert(offset + limit < coder->lz.keep_size_after);
|
assert(offset + limit < coder->lz.keep_size_after);
|
||||||
|
assert(coder->lz.read_pos <= coder->lz.write_pos);
|
||||||
|
|
||||||
// If we are close to end of the stream, we may need
|
// If we are close to end of the stream, we may need
|
||||||
// to limit the length of the match.
|
// to limit the length of the match.
|
||||||
if (coder->lz.stream_end_was_reached
|
if (coder->lz.write_pos - coder->lz.read_pos
|
||||||
&& coder->lz.write_pos
|
< offset + limit)
|
||||||
< coder->lz.read_pos + offset + limit)
|
|
||||||
limit = coder->lz.write_pos
|
limit = coder->lz.write_pos
|
||||||
- (coder->lz.read_pos + offset);
|
- (coder->lz.read_pos + offset);
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user