aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/asv1.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-04-22 12:16:29 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-04-22 12:16:29 +0200
commit605f2b6b004eee4dc57832257169ff8eaa562fb7 (patch)
tree2ce969e474690a5628362fbd2b61514b0523d786 /libavcodec/asv1.c
parentfa5dacce143f3fbe8eac14d5a99e926b2787e9e6 (diff)
downloadffmpeg-605f2b6b004eee4dc57832257169ff8eaa562fb7.tar.gz
asv1dec: check extradatasize before reading.
Fixes null ptr dereference Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/asv1.c')
-rw-r--r--libavcodec/asv1.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/libavcodec/asv1.c b/libavcodec/asv1.c
index c6e0c53000..702a59ee3f 100644
--- a/libavcodec/asv1.c
+++ b/libavcodec/asv1.c
@@ -553,8 +553,7 @@ static av_cold int decode_init(AVCodecContext *avctx){
ff_init_scantable(a->dsp.idct_permutation, &a->scantable, scantab);
avctx->pix_fmt= PIX_FMT_YUV420P;
- a->inv_qscale= avctx->extradata[0];
- if(a->inv_qscale == 0){
+ if(avctx->extradata_size < 1 || (a->inv_qscale= avctx->extradata[0]) == 0){
av_log(avctx, AV_LOG_ERROR, "illegal qscale 0\n");
if(avctx->codec_id == CODEC_ID_ASV1)
a->inv_qscale= 6;