diff --git a/libavformat/cafdec.c b/libavformat/cafdec.c index 3d9c48eaf8..5452273414 100644 --- a/libavformat/cafdec.c +++ b/libavformat/cafdec.c @@ -335,7 +335,7 @@ static int read_header(AVFormatContext *s) return AVERROR_INVALIDDATA; if (caf->bytes_per_packet > 0 && caf->frames_per_packet > 0) { - if (caf->data_size > 0) + if (caf->data_size > 0 && caf->data_size / caf->bytes_per_packet < INT64_MAX / caf->frames_per_packet) st->nb_frames = (caf->data_size / caf->bytes_per_packet) * caf->frames_per_packet; } else if (st->nb_index_entries && st->duration > 0) { st->codecpar->bit_rate = st->codecpar->sample_rate * caf->data_size * 8 /