diff options
author | Zoltan Szabadka <szabadka@google.com> | 2014-01-06 16:01:57 +0100 |
---|---|---|
committer | Zoltan Szabadka <szabadka@google.com> | 2014-01-06 16:01:57 +0100 |
commit | d762bc6845dc1a34ece40a0e0ef673cf78112b0b (patch) | |
tree | 8036452ce89dbc5de44a879266f22f982d9bb5ff /enc/hash.h | |
parent | 1447345cbb87b39ee869673506f17eb968b1f887 (diff) | |
download | brotli-d762bc6845dc1a34ece40a0e0ef673cf78112b0b.zip brotli-d762bc6845dc1a34ece40a0e0ef673cf78112b0b.tar.gz brotli-d762bc6845dc1a34ece40a0e0ef673cf78112b0b.tar.bz2 |
Bug fixes for the brotli encoder and decoder.
Diffstat (limited to 'enc/hash.h')
-rw-r--r-- | enc/hash.h | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -205,7 +205,9 @@ class HashLongestMatch { continue; } prev_ix &= ring_buffer_mask; - if (data[cur_ix_masked + best_len] != data[prev_ix + best_len]) { + if (cur_ix_masked + best_len > ring_buffer_mask || + prev_ix + best_len > ring_buffer_mask || + data[cur_ix_masked + best_len] != data[prev_ix + best_len]) { continue; } const size_t len = @@ -277,7 +279,9 @@ class HashLongestMatch { break; } prev_ix &= ring_buffer_mask; - if (data[cur_ix_masked + best_len] != data[prev_ix + best_len]) { + if (cur_ix_masked + best_len > ring_buffer_mask || + prev_ix + best_len > ring_buffer_mask || + data[cur_ix_masked + best_len] != data[prev_ix + best_len]) { continue; } const size_t len = |