]> git.nihav.org Git - nihav.git/commitdiff
codec_support/msstructs: check WAVEFORMATEX.cbSize for validity
authorKostya Shishkov <kostya.shishkov@gmail.com>
Fri, 20 Mar 2026 17:54:09 +0000 (18:54 +0100)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Fri, 20 Mar 2026 17:54:09 +0000 (18:54 +0100)
nihav-codec-support/src/codecs/msstructs.rs

index b1b10ece6b5483d199d5ea6eba9a20e71b9e6a77..1dc155849d31f2e178eebd8ff896448b5d92cde6 100644 (file)
@@ -179,7 +179,10 @@ impl MSWaveFormat {
         let mut extradata = None;
         if size > 16 {
             let cb_size         = usize::from(src.read_u16le()?);
-            if cb_size > 0 {
+            if cb_size > 0 && size > 18 {
+                if cb_size > size - 18 {
+                    return Err(ByteIOError::ReadError);
+                }
                 let mut edata = vec![0; cb_size];
                                   src.read_buf(&mut edata)?;
                 extradata = Some(edata);