diff --git a/mp4/subs.go b/mp4/subs.go index f67cc0c..bd9ac27 100644 --- a/mp4/subs.go +++ b/mp4/subs.go @@ -91,6 +91,9 @@ func DecodeSubsSR(hdr BoxHeader, startPos uint64, sr bits.SliceReader) (Box, err ss.CodecSpecificParameters = sr.ReadUint32() e.SubSamples = append(e.SubSamples, ss) } + if sr.AccError() != nil { + return nil, sr.AccError() + } b.Entries = append(b.Entries, e) } return &b, sr.AccError() diff --git a/mp4/testdata/fuzz/FuzzDecodeBox/dc68c3d7e3180551 b/mp4/testdata/fuzz/FuzzDecodeBox/dc68c3d7e3180551 new file mode 100644 index 0000000..b8db8ae --- /dev/null +++ b/mp4/testdata/fuzz/FuzzDecodeBox/dc68c3d7e3180551 @@ -0,0 +1,2 @@ +go test fuzz v1 +[]byte("\x00\x00\x04\x1cdreftrl \x00\x00\x00\x01\x00\x00\x017subsed Caption\x00\x00\x00\x00\xa4minf\x00\x00\x00\fnmhd\x00\x00\x00\x00\x00\x00\x00$dinf\x00\x00\x00\x1cd\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00#\x00\furl \x00\x00\x00\x01\x00\x00\x00lstbl\x00\x00\x00 sts\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x10c608\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x10stts\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x10stsc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14stsz\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10stco\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00Pudta\x00\x00\x00Hswre\x00\x00\x00\x00U\xc4mediafilesegmenter: Version 1.10.4 (524.12i-210805) Linux\x00\x00\x00\x00Hmvex\x00\x00\x00 trex\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 trex\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00")