From 3652dd5d0ceef6281d86fbd68aa7b5552f59bb1f Mon Sep 17 00:00:00 2001 From: Kieran Kunhya Date: Wed, 9 Dec 2015 00:56:02 +0000 Subject: [PATCH] diracdec: Fix FPE on invalid low_delay data --- libavcodec/diracdec.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libavcodec/diracdec.c b/libavcodec/diracdec.c index 2d076a55ab..6e5fe9f45e 100644 --- a/libavcodec/diracdec.c +++ b/libavcodec/diracdec.c @@ -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;