aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2023-09-30 11:46:18 +0200
committerKostya Shishkov <kostya.shishkov@gmail.com>2023-10-07 18:47:32 +0200
commit2c031ed0963cfb3a37ba6c5d4b64d9bbc4250832 (patch)
tree552b2856a15fbba41ad2d57587b3da4de25958da
parentc455a7946c1238093c78fad12bcf7110db086465 (diff)
downloadnihav-2c031ed0963cfb3a37ba6c5d4b64d9bbc4250832.tar.gz
smacker: add forgotten recursion depth check
-rw-r--r--nihav-rad/src/codecs/smacker.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/nihav-rad/src/codecs/smacker.rs b/nihav-rad/src/codecs/smacker.rs
index d834c7e..7ecd443 100644
--- a/nihav-rad/src/codecs/smacker.rs
+++ b/nihav-rad/src/codecs/smacker.rs
@@ -94,6 +94,7 @@ const SMK_LAST_UNINIT: usize = 0xFFFFFFFF;
impl SmackerTree16Builder {
fn get_tree16(&mut self, br: &mut BitReader, tree: &mut SmackerTree16, depth: usize) -> DecoderResult<u32> {
validate!(tree.tree.len() < self.nsyms);
+ validate!(depth <= 32);
if !br.read_bool()? {
let lo = br.read_tree8(&self.tree_lo)?;
let hi = br.read_tree8(&self.tree_hi)?;