riffdec: Add sanity checks for the sample rate
authorMartin Storsjö <martin@martin.st>
Sat, 28 Sep 2013 20:32:39 +0000 (23:32 +0300)
committerMartin Storsjö <martin@martin.st>
Sun, 29 Sep 2013 16:58:18 +0000 (19:58 +0300)
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>
libavformat/riffdec.c

index 447a6864b702faf1945b2a4a52effab96fd1daa9..74f93acedf5f30a32f2e0f97e8eca881e3e876c1 100644 (file)
@@ -120,6 +120,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;
+    }
     if (codec->codec_id == AV_CODEC_ID_AAC_LATM) {
         /* Channels and sample_rate values are those prior to applying SBR
          * and/or PS. */