1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-08-15 14:13:16 +02:00

caf: fix 'pakt' chunk parsing

according to the CAF specification:
"... the value for mChunkSize can be greater than the actual valid content
of the packet table chunk"
This commit is contained in:
Justin Ruggles
2012-07-09 14:10:52 -04:00
parent b0b77b9ca5
commit f5a9c35f88

View File

@@ -192,10 +192,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); 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"); 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; caf->num_bytes = pos;
return 0; return 0;