aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2013-09-28 23:32:39 +0300
committerLuca Barbato <lu_zero@gentoo.org>2014-01-07 09:43:57 +0100
commit7fdb915fc712f43879a396015b6fc56e40e89b35 (patch)
tree3b16a7395776f1a6b217315e9aa55c8a651ada96
parent35c39d2ee2a2ff6f8200b5725dd9bf443dba55c7 (diff)
downloadffmpeg-7fdb915fc712f43879a396015b6fc56e40e89b35.tar.gz
riffdec: Add sanity checks for the sample rate
This avoids a division by zero for G726. Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st> (cherry picked from commit d07aa3f02b73ab1371c13ac7898338380ca0932b) Signed-off-by: Luca Barbato <lu_zero@gentoo.org> (cherry picked from commit 607863acaec85671f8c2afd81079ae4c605e3468)
-rw-r--r--libavformat/riff.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavformat/riff.c b/libavformat/riff.c
index 4caac80643..2594bd2995 100644
--- a/libavformat/riff.c
+++ b/libavformat/riff.c
@@ -563,6 +563,11 @@ int ff_get_wav_header(AVIOContext *pb, AVCodecContext *codec, int size)
if (size > 0)
avio_skip(pb, size);
}
+ if (codec->sample_rate <= 0) {
+ av_log(NULL, AV_LOG_ERROR,
+ "Invalid sample rate: %d\n", codec->sample_rate);
+ return AVERROR_INVALIDDATA;
+ }
codec->codec_id = ff_wav_codec_get_id(id, codec->bits_per_coded_sample);
if (codec->codec_id == CODEC_ID_AAC_LATM) {
/* channels and sample_rate values are those prior to applying SBR and/or PS */