summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Zern <jzern@google.com>2014-08-14 14:56:08 -0700
committerJames Zern <jzern@google.com>2014-08-14 14:57:54 -0700
commita07d09ff34885040187a83f4b4726f7b85b63e4c (patch)
tree3643a5d109f93858961067fc07a692330c4dd9e7
parentd4a47a6cc0d869bea3071c15bc61da6836026d0b (diff)
downloadlibvpx-a07d09ff34885040187a83f4b4726f7b85b63e4c.tar
libvpx-a07d09ff34885040187a83f4b4726f7b85b63e4c.tar.gz
libvpx-a07d09ff34885040187a83f4b4726f7b85b63e4c.tar.bz2
libvpx-a07d09ff34885040187a83f4b4726f7b85b63e4c.zip
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
-rw-r--r--vp9/decoder/vp9_decoder.c8
1 files changed, 6 insertions, 2 deletions
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");