lavc/rv30: fix mem leak in case of init failure
authorLukasz Marek <lukasz.m.luki2@gmail.com>
Sat, 22 Nov 2014 22:11:50 +0000 (23:11 +0100)
committerLukasz Marek <lukasz.m.luki2@gmail.com>
Sun, 23 Nov 2014 19:53:17 +0000 (20:53 +0100)
Also replaced return -1 with return AVERROR(EINVAL)

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
libavcodec/rv30.c

index fd8fd4f..1483107 100644 (file)
@@ -259,13 +259,13 @@ static av_cold int rv30_decode_init(AVCodecContext *avctx)
     RV34DecContext *r = avctx->priv_data;
     int ret;
 
+    if (avctx->extradata_size < 2) {
+        av_log(avctx, AV_LOG_ERROR, "Extradata is too small.\n");
+        return AVERROR(EINVAL);
+    }
     r->rv30 = 1;
     if ((ret = ff_rv34_decode_init(avctx)) < 0)
         return ret;
-    if(avctx->extradata_size < 2){
-        av_log(avctx, AV_LOG_ERROR, "Extradata is too small.\n");
-        return -1;
-    }
 
     r->max_rpr = avctx->extradata[1] & 7;
     if(avctx->extradata_size < 2*r->max_rpr + 8){