sanity checks (should prevent hypothetical div by zero issue)
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 30 May 2007 23:06:37 +0000 (23:06 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 30 May 2007 23:06:37 +0000 (23:06 +0000)
should fix sf bug #1547313

Originally committed as revision 9164 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/wma.c
libavcodec/wmadec.c

index 2241a07..1f1495e 100644 (file)
@@ -72,6 +72,11 @@ int ff_wma_init(AVCodecContext * avctx, int flags2)
     int sample_rate1;
     int coef_vlc_table;
 
     int sample_rate1;
     int coef_vlc_table;
 
+    if(   avctx->sample_rate<=0 || avctx->sample_rate>50000
+       || avctx->channels<=0 || avctx->channels>8
+       || avctx->bit_rate<=0)
+        return -1;
+
     s->sample_rate = avctx->sample_rate;
     s->nb_channels = avctx->channels;
     s->bit_rate = avctx->bit_rate;
     s->sample_rate = avctx->sample_rate;
     s->nb_channels = avctx->channels;
     s->bit_rate = avctx->bit_rate;
index 2022f3d..da02f69 100644 (file)
@@ -106,7 +106,8 @@ static int wma_decode_init(AVCodecContext * avctx)
     s->use_bit_reservoir = flags2 & 0x0002;
     s->use_variable_block_len = flags2 & 0x0004;
 
     s->use_bit_reservoir = flags2 & 0x0002;
     s->use_variable_block_len = flags2 & 0x0004;
 
-    ff_wma_init(avctx, flags2);
+    if(ff_wma_init(avctx, flags2)<0)
+        return -1;
 
     /* init MDCT */
     for(i = 0; i < s->nb_block_sizes; i++)
 
     /* init MDCT */
     for(i = 0; i < s->nb_block_sizes; i++)