diff options
author | Kostya Shishkov <kostya.shishkov@gmail.com> | 2018-12-08 15:21:22 +0100 |
---|---|---|
committer | Kostya Shishkov <kostya.shishkov@gmail.com> | 2018-12-08 15:21:22 +0100 |
commit | 26488721a0cdb26c33f4e35f177c40fb81984346 (patch) | |
tree | 244f368f52dd5f443538cd48b72e2a4a047079c6 | |
parent | 43c8b55e9b586d6814b0588516eadf9bd12c9685 (diff) | |
download | nihav-26488721a0cdb26c33f4e35f177c40fb81984346.tar.gz |
codebook: reject invalid codes
-rw-r--r-- | src/io/codebook.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/io/codebook.rs b/src/io/codebook.rs index 5bfd719..3d1e8d0 100644 --- a/src/io/codebook.rs +++ b/src/io/codebook.rs @@ -195,7 +195,12 @@ impl<S: Copy> Codebook<S> { let mut symidx: usize = 0; for i in 0..cb.len() { let bits = cb.bits(i); - if bits > 0 { nnz = nnz + 1; } + if bits > 0 { + nnz = nnz + 1; + if cb.code(i) >= (1 << bits) { + return Err(CodebookError::InvalidCodebook); + } + } maxbits = max(bits, maxbits); if bits > MAX_LUT_BITS { let code = cb.code(i); |