From: Anton Khirnov Date: Thu, 28 Nov 2013 09:54:35 +0000 (+0100) Subject: pmpdec: check that there is at least one audio packet. X-Git-Tag: v10_alpha2~123 X-Git-Url: https://git.libav.org/?p=libav.git;a=commitdiff_plain;h=1b5d065ca722eb8028c7a08e054b6da3419faf5d pmpdec: check that there is at least one audio packet. The code cannot handle there being none, but that should not happen for valid files. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC:libav-stable@libav.org --- diff --git a/libavformat/pmpdec.c b/libavformat/pmpdec.c index 484be43ce9..8ae147f391 100644 --- a/libavformat/pmpdec.c +++ b/libavformat/pmpdec.c @@ -124,6 +124,11 @@ static int pmp_packet(AVFormatContext *s, AVPacket *pkt) if (pmp->cur_stream == 0) { int num_packets; pmp->audio_packets = avio_r8(pb); + if (!pmp->audio_packets) { + av_log(s, AV_LOG_ERROR, "No audio packets.\n"); + return AVERROR_INVALIDDATA; + } + num_packets = (pmp->num_streams - 1) * pmp->audio_packets + 1; avio_skip(pb, 8); pmp->current_packet = 0;