qdm2: check that the FFT size is a power of 2
authorAnton Khirnov <anton@khirnov.net>
Tue, 9 Apr 2013 13:25:20 +0000 (15:25 +0200)
committerReinhard Tartler <siretart@tauware.de>
Wed, 24 Apr 2013 19:01:14 +0000 (21:01 +0200)
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
(cherry picked from commit 34f87a58532ed652a6e0283c1d044ee5df0aef0b)

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
libavcodec/qdm2.c

index 739971e..59bce40 100644 (file)
@@ -1881,6 +1881,10 @@ static av_cold int qdm2_decode_init(AVCodecContext *avctx)
         av_log(avctx, AV_LOG_ERROR, "Unknown FFT order (%d), contact the developers!\n", s->fft_order);
         return -1;
     }
+    if (s->fft_size != (1 << (s->fft_order - 1))) {
+        av_log(avctx, AV_LOG_ERROR, "FFT size %d not power of 2.\n", s->fft_size);
+        return AVERROR_INVALIDDATA;
+    }
 
     ff_rdft_init(&s->rdft_ctx, s->fft_order, IDFT_C2R);
     ff_mpadsp_init(&s->mpadsp);