ref: 232ccc2fbe06599a20535fc97bb7e25767524f46
parent: 6b1b34177491351fb15613637bd1667ced34c5ac
author: Jingning Han <jingning@google.com>
date: Wed Feb 20 10:32:17 EST 2013
Fixed the buffer overflow issue The issue that potentially broke the encoding process was due to the fact that the length of token link is calculated from the total number of tokens coded, while it is possible, in high bit-rate setting, this length is greater than the buffer length initially assigned to the cpi->tok. This patch increases the initially allocated buffer length assigned to cpi->tok from (mb_rows * mb_cols * 24 * 16) to (mb_rows * mb_cols * (1 + 24 * 16)). It resolves the buffer overflow problem. Change-Id: I8661a8d39ea0a3c24303e3f71a170787a1d5b1df
--- a/vp9/encoder/vp9_onyx_if.c
+++ b/vp9/encoder/vp9_onyx_if.c
@@ -947,7 +947,7 @@
vpx_free(cpi->tok);
{
- unsigned int tokens = cm->mb_rows * cm->mb_cols * 24 * 16;
+ unsigned int tokens = cm->mb_rows * cm->mb_cols * (24 * 16 + 1);
CHECK_MEM_ERROR(cpi->tok, vpx_calloc(tokens, sizeof(*cpi->tok)));
}
--
⑨