From 4736d003fac30af4afd8390182f12f480ad78801 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Thu, 28 Nov 2013 10:54:35 +0100 Subject: [PATCH] cavsdec: check ff_get_buffer() return value Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC:libav-stable@libav.org --- libavcodec/cavsdec.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavcodec/cavsdec.c b/libavcodec/cavsdec.c index 142b844cad..a8ed1920ed 100644 --- a/libavcodec/cavsdec.c +++ b/libavcodec/cavsdec.c @@ -928,6 +928,7 @@ static inline int check_for_slice(AVSContext *h) static int decode_pic(AVSContext *h) { + int ret; int skip_count = -1; enum cavs_mb mb_type; @@ -964,8 +965,10 @@ static int decode_pic(AVSContext *h) skip_bits(&h->gb, 1); //marker_bit } - ff_get_buffer(h->avctx, h->cur.f, h->cur.f->pict_type == AV_PICTURE_TYPE_B ? - 0 : AV_GET_BUFFER_FLAG_REF); + ret = ff_get_buffer(h->avctx, h->cur.f, h->cur.f->pict_type == AV_PICTURE_TYPE_B ? + 0 : AV_GET_BUFFER_FLAG_REF); + if (ret < 0) + return ret; if (!h->edge_emu_buffer) { int alloc_size = FFALIGN(FFABS(h->cur.f->linesize[0]) + 32, 32);