]> git.nihav.org Git - nihav.git/commitdiff
mov: ignore short zero padding at the end of codec descriptor
authorKostya Shishkov <kostya.shishkov@gmail.com>
Sat, 12 Sep 2026 13:55:21 +0000 (15:55 +0200)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Sat, 12 Sep 2026 13:55:21 +0000 (15:55 +0200)
nihav-commonfmt/src/demuxers/mov/track.rs

index ce25fef5239f87d81abcd3eec23fbb0466872693..957f80528759f79814fcbfc6e52b42047075d7d5 100644 (file)
@@ -431,10 +431,15 @@ fn read_stsd(track: &mut Track, br: &mut dyn ByteIO, size: u64) -> DemuxerResult
                 }
                 let edata = if br.tell() < end_pos {
                         let edata_size  = br.read_u32be()? as usize;
-                        validate!(edata_size >= 4);
-                        let mut buf = vec![0; edata_size - 4];
-                                      br.read_buf(buf.as_mut_slice())?;
-                        Some(buf)
+                        let left = (end_pos - br.tell()) as usize;
+                        if edata_size > 0 || left > 8 {
+                            validate!(edata_size >= 4);
+                            let mut buf = vec![0; edata_size - 4];
+                                          br.read_buf(buf.as_mut_slice())?;
+                            Some(buf)
+                        } else {
+                            None
+                        }
                     } else {
                         None
                     };