From: James Zern Date: Thu, 14 Aug 2014 21:56:08 +0000 (-0700) Subject: vp9_copy_reference_dec: check ref frame index before use X-Git-Tag: v1.4.0~1017^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a07d09ff34885040187a83f4b4726f7b85b63e4c;p=libvpx vp9_copy_reference_dec: check ref frame index before use use get_ref_frame() to ensure a valid frame is retrieved if one exists Change-Id: I4b116d928e643ee62a991babd4b974037b6b3830 --- diff --git a/vp9/decoder/vp9_decoder.c b/vp9/decoder/vp9_decoder.c index 2a2f0f5fa..1a4155825 100644 --- a/vp9/decoder/vp9_decoder.c +++ b/vp9/decoder/vp9_decoder.c @@ -123,8 +123,12 @@ vpx_codec_err_t vp9_copy_reference_dec(VP9Decoder *pbi, * later commit that adds VP9-specific controls for this functionality. */ if (ref_frame_flag == VP9_LAST_FLAG) { - const YV12_BUFFER_CONFIG *const cfg = - &cm->frame_bufs[cm->ref_frame_map[0]].buf; + const YV12_BUFFER_CONFIG *const cfg = get_ref_frame(cm, 0); + if (cfg == NULL) { + vpx_internal_error(&cm->error, VPX_CODEC_ERROR, + "No 'last' reference frame"); + return VPX_CODEC_ERROR; + } if (!equal_dimensions(cfg, sd)) vpx_internal_error(&cm->error, VPX_CODEC_ERROR, "Incorrect buffer dimensions");