@@ -66,6 +66,8 @@ static IMAGE_AVIF_IROT_MISSING_ESSENTIAL: &str = "tests/irot-missing-essential.a
6666static IMAGE_AVIF_LSEL_MISSING_ESSENTIAL : & str = "tests/corrupt/lsel-missing-essential.avif" ;
6767static IMAGE_AVIF_CLAP_MISSING_ESSENTIAL : & str = "tests/clap-missing-essential.avif" ;
6868static IMAGE_AVIF_UNKNOWN_MDAT_SIZE : & str = "tests/unknown_mdat.avif" ;
69+ static IMAGE_AVIF_UNKNOWN_MDAT_SIZE_IN_OVERSIZED_META : & str =
70+ "tests/unknown_mdat_in_oversized_meta.avif" ;
6971static AVIF_TEST_DIRS : & [ & str ] = & [ "tests" , "av1-avif/testFiles" , "link-u-avif-sample-images" ] ;
7072
7173// These files are
@@ -124,6 +126,7 @@ static AVIF_UNSUPPORTED_IMAGES: &[&str] = &[
124126/// and https://github.com/AOMediaCodec/av1-avif/issues/178
125127// TODO: make this into a map of expected errors?
126128static AV1_AVIF_CORRUPT_IMAGES : & [ & str ] = & [
129+ IMAGE_AVIF_UNKNOWN_MDAT_SIZE_IN_OVERSIZED_META ,
127130 "av1-avif/testFiles/Link-U/kimono.crop.avif" ,
128131 "av1-avif/testFiles/Link-U/kimono.mirror-horizontal.avif" ,
129132 "av1-avif/testFiles/Link-U/kimono.mirror-vertical.avif" ,
@@ -926,6 +929,16 @@ fn public_avif_unknown_mdat() {
926929 ) ;
927930}
928931
932+ #[ test]
933+ fn public_avif_unknown_mdat_in_oversized_meta ( ) {
934+ let input =
935+ & mut File :: open ( IMAGE_AVIF_UNKNOWN_MDAT_SIZE_IN_OVERSIZED_META ) . expect ( "Unknown file" ) ;
936+ assert_eq ! (
937+ Status :: from( mp4:: read_avif( input, ParseStrictness :: Normal ) ) ,
938+ Status :: Unsupported
939+ ) ;
940+ }
941+
929942#[ test]
930943fn public_avif_bug_1655846 ( ) {
931944 let input = & mut File :: open ( IMAGE_AVIF_CORRUPT ) . expect ( "Unknown file" ) ;
0 commit comments