]> git.nihav.org Git - nihav.git/commitdiff
avi: slightly improve possibly unaligned chunk handling
authorKostya Shishkov <kostya.shishkov@gmail.com>
Tue, 3 Feb 2026 17:07:13 +0000 (18:07 +0100)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Tue, 3 Feb 2026 17:40:02 +0000 (18:40 +0100)
nihav-commonfmt/src/demuxers/avi.rs

index 2b763d52afd00d9e7fffb7422cf4e361d7cfe39d..16fa9eb6a84c2e2e7474a57ad1680b35a52c70b2 100644 (file)
@@ -399,6 +399,17 @@ fn parse_chunks<T>(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()?;
+                    }
+                }
             }
         }
     }