summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/wma.c5
-rw-r--r--libavcodec/wmadec.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/libavcodec/wma.c b/libavcodec/wma.c
index 2241a07a0e..1f1495e6ef 100644
--- a/libavcodec/wma.c
+++ b/libavcodec/wma.c
@@ -72,6 +72,11 @@ int ff_wma_init(AVCodecContext * avctx, int flags2)
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;
diff --git a/libavcodec/wmadec.c b/libavcodec/wmadec.c
index 2022f3dba7..da02f69824 100644
--- a/libavcodec/wmadec.c
+++ b/libavcodec/wmadec.c
@@ -106,7 +106,8 @@ static int wma_decode_init(AVCodecContext * avctx)
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++)