vorbis_parser: Move vp check to avoid a null pointer dereference
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 24 Nov 2014 15:48:27 +0000 (15:48 +0000)
committerVittorio Giovara <vittorio.giovara@gmail.com>
Tue, 25 Nov 2014 02:00:06 +0000 (02:00 +0000)
CC: libav-stable@libav.org
Bug-Id: CID 1251347

libavcodec/vorbis_parser.c

index 231706c42b14edf57f999dd62738e33be4e73bf1..054635d10030c02889bbb906e3ce0f3c5af8da9d 100644 (file)
@@ -303,9 +303,9 @@ static int vorbis_parse(AVCodecParserContext *s1, AVCodecContext *avctx,
 
     if (!s->vp && avctx->extradata && avctx->extradata_size) {
         s->vp = av_vorbis_parse_init(avctx->extradata, avctx->extradata_size);
 
     if (!s->vp && avctx->extradata && avctx->extradata_size) {
         s->vp = av_vorbis_parse_init(avctx->extradata, avctx->extradata_size);
-        if (!s->vp)
-            goto end;
     }
     }
+    if (!s->vp)
+        goto end;
 
     if ((duration = av_vorbis_parse_frame(s->vp, buf, buf_size)) >= 0)
         s1->duration = duration;
 
     if ((duration = av_vorbis_parse_frame(s->vp, buf, buf_size)) >= 0)
         s1->duration = duration;