jpeg2000: check that nreslevels2decode has been initialized before use
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 5 Jun 2013 16:04:20 +0000 (18:04 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 5 Jun 2013 16:34:07 +0000 (18:34 +0200)
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/jpeg2000.c

index 14f36c4..a2c3e47 100644 (file)
@@ -200,6 +200,11 @@ int ff_jpeg2000_init_component(Jpeg2000Component *comp,
     int reslevelno, bandno, gbandno = 0, ret, i, j;
     uint32_t csize;
 
+    if (codsty->nreslevels2decode <= 0) {
+        av_log(avctx, AV_LOG_ERROR, "nreslevels2decode %d invalid or uninitialized\n", codsty->nreslevels2decode);
+        return AVERROR(EINVAL);
+    }
+
     if (ret = ff_jpeg2000_dwt_init(&comp->dwt, comp->coord,
                                    codsty->nreslevels2decode - 1,
                                    codsty->transform))