according to the CAF specification: "... the value for mChunkSize can be greater than the actual valid content of the packet table chunk" --- libavformat/cafdec.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/libavformat/cafdec.c b/libavformat/cafdec.c index 0475175..6e5b2c8 100644 --- a/libavformat/cafdec.c +++ b/libavformat/cafdec.c @@ -188,10 +188,11 @@ static int read_pakt_chunk(AVFormatContext *s, int64_t size) st->duration += caf->frames_per_packet ? caf->frames_per_packet : ff_mp4_read_descr_len(pb); } - if (avio_tell(pb) - ccount != size) { + if (avio_tell(pb) - ccount > size) { av_log(s, AV_LOG_ERROR, "error reading packet table\n"); - return -1; + return AVERROR_INVALIDDATA; } + avio_skip(pb, ccount + size - avio_tell(pb)); caf->num_bytes = pos; return 0; -- 1.7.1 _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel