]> git.nihav.org Git - nihav.git/commitdiff
mov: fix read_palette() reporting wrong read amount
authorKostya Shishkov <kostya.shishkov@gmail.com>
Wed, 16 Sep 2026 14:30:43 +0000 (16:30 +0200)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Wed, 16 Sep 2026 14:30:43 +0000 (16:30 +0200)
nihav-commonfmt/src/demuxers/mov/mod.rs

index b83993c5d112c4cb63d6479e801a6d32d63bb545..ad5c68bdfe033984ca733d8c48ba9ce0ba7948f8 100644 (file)
@@ -55,7 +55,8 @@ fn read_palette(br: &mut dyn ByteIO, size: u64, pal: &mut [u8; 1024]) -> Demuxer
     let palsize         = (br.read_u16be()? as usize) + 1;
     validate!(palsize <= 256);
     validate!(flags == 0 || flags == 0x4000 || flags == 0x8000);
-    validate!((palsize as u64) * 8 + 8 <= size);
+    let mut read_size = (palsize as u64) * 8 + 8;
+    validate!(read_size <= size);
     for i in 0..palsize {
         let a           = br.read_u16be()?;
         let r           = br.read_u16be()?;
@@ -70,8 +71,9 @@ fn read_palette(br: &mut dyn ByteIO, size: u64, pal: &mut [u8; 1024]) -> Demuxer
     }
     if flags == 0x4000 {
         br.read_skip(8)?;
+        read_size += 8;
     }
-    Ok(size)
+    Ok(read_size)
 }
 
 struct RootChunkHandler {