]> git.sesse.net Git - ffmpeg/commitdiff
diracdec: Fix FPE on invalid low_delay data
authorKieran Kunhya <kierank@ob-encoder.com>
Wed, 9 Dec 2015 00:56:02 +0000 (00:56 +0000)
committerRostislav Pehlivanov <atomnuker@gmail.com>
Thu, 10 Dec 2015 22:14:03 +0000 (22:14 +0000)
libavcodec/diracdec.c

index 2d076a55abd8d9722861f26ee4d14a8dfc1fb16a..6e5fe9f45e24ac48e300823451c982068aa9386c 100644 (file)
@@ -2002,6 +2002,11 @@ static int dirac_decode_data_unit(AVCodecContext *avctx, const uint8_t *buf, int
         if (s->version.minor == 2 && parse_code == 0x88)
             s->ld_picture = 1;
 
+        if (s->low_delay && !(s->ld_picture || s->hq_picture) ) {
+            av_log(avctx, AV_LOG_ERROR, "Invalid low delay flag\n");
+            return AVERROR_INVALIDDATA;
+        }
+
         if ((ret = get_buffer_with_edge(avctx, pic->avframe, (parse_code & 0x0C) == 0x0C ? AV_GET_BUFFER_FLAG_REF : 0)) < 0)
             return ret;
         s->current_picture = pic;