From: Kostya Shishkov Date: Tue, 3 Feb 2026 17:07:13 +0000 (+0100) Subject: avi: slightly improve possibly unaligned chunk handling X-Git-Url: https://git.nihav.org/?a=commitdiff_plain;h=2a6e7358dd2bd0a66a4e397c13612d6ea5838111;p=nihav.git avi: slightly improve possibly unaligned chunk handling --- diff --git a/nihav-commonfmt/src/demuxers/avi.rs b/nihav-commonfmt/src/demuxers/avi.rs index 2b763d5..16fa9eb 100644 --- a/nihav-commonfmt/src/demuxers/avi.rs +++ b/nihav-commonfmt/src/demuxers/avi.rs @@ -399,6 +399,17 @@ fn parse_chunks(obj: &mut T, src: &mut dyn ByteIO, strmgr: &mut StreamManager let b = src.peek_byte()?; if b == 0 { src.read_byte()?; + } else { + let mut peekbuf = [0; 9]; + if src.peek_buf(&mut peekbuf).is_ok() { + let size1 = read_u32le(&peekbuf[4..]).unwrap_or_default(); + let size2 = read_u32le(&peekbuf[5..]).unwrap_or_default(); + let end1 = src.tell() + u64::from(size1); + let end2 = src.tell() + u64::from(size2); + if end1 > parse_end && end2 <= parse_end { + src.read_byte()?; + } + } } } }