Decoder: Avoid overlapping memcpy while initializing ref lists

Bug: 117608404
Test: poc with valgrind before/after

Change-Id: I73f2c5302376af11a8f922ceb2e0b1c9cf883f8b
This commit is contained in:
Isha Kulkarni 2019-05-10 12:16:01 +05:30 • committed by Ray Essick
parent c83038ec70
commit 2f8dcdd41a
2 changed files with 30 additions and 30 deletions

View file

@ -1360,17 +1360,17 @@ void ih264d_init_ref_idx_lx_b(dec_struct_t *ps_dec)
/* reference list to handle of errors */
{
UWORD8 u1_i;
pic_buffer_t *ps_ref_pic;
pic_buffer_t ref_pic;
ps_ref_pic = ps_dpb_mgr->ps_init_dpb[0][0] + MAX_REF_BUFS;
ref_pic = *(ps_dpb_mgr->ps_init_dpb[0][0] + MAX_REF_BUFS);
if(NULL == ps_ref_pic->pu1_buf1)
if(NULL == ref_pic.pu1_buf1)
{
ps_ref_pic = ps_dec->ps_cur_pic;
ref_pic = *ps_dec->ps_cur_pic;
}
for(u1_i = u1_L0; u1_i < u1_max_ref_idx_l0; u1_i++)
{
*ps_ref_pic_buf_lx = *ps_ref_pic;
*ps_ref_pic_buf_lx = ref_pic;
ps_ref_pic_buf_lx++;
}
}
@ -1387,17 +1387,17 @@ void ih264d_init_ref_idx_lx_b(dec_struct_t *ps_dec)
/* reference list to handle of errors */
{
UWORD8 u1_i;
pic_buffer_t *ps_ref_pic;
pic_buffer_t ref_pic;
ps_ref_pic = ps_dpb_mgr->ps_init_dpb[0][0];
ref_pic = *(ps_dpb_mgr->ps_init_dpb[0][0]);
if(NULL == ps_ref_pic->pu1_buf1)
if(NULL == ref_pic.pu1_buf1)
{
ps_ref_pic = ps_dec->ps_cur_pic;
ref_pic = *ps_dec->ps_cur_pic;
}
for(u1_i = u1_L0; u1_i < u1_max_ref_idx_l0; u1_i++)
{
*ps_ref_pic_buf_lx = *ps_ref_pic;
*ps_ref_pic_buf_lx = ref_pic;
ps_ref_pic_buf_lx++;
}
}
@ -1493,17 +1493,17 @@ void ih264d_init_ref_idx_lx_b(dec_struct_t *ps_dec)
/* reference list to handle of errors */
{
UWORD8 u1_i;
pic_buffer_t *ps_ref_pic;
pic_buffer_t ref_pic;
ps_ref_pic = ps_dpb_mgr->ps_init_dpb[0][0] + MAX_REF_BUFS;
ref_pic = *(ps_dpb_mgr->ps_init_dpb[0][0] + MAX_REF_BUFS);
if(NULL == ps_ref_pic->pu1_buf1)
if(NULL == ref_pic.pu1_buf1)
{
ps_ref_pic = ps_dec->ps_cur_pic;
ref_pic = *ps_dec->ps_cur_pic;
}
for(u1_i = u1_L1; u1_i < u1_max_ref_idx_l1; u1_i++)
{
*ps_ref_pic_buf_lx = *ps_ref_pic;
*ps_ref_pic_buf_lx = ref_pic;
ps_ref_pic_buf_lx++;
}
}
@ -1520,17 +1520,17 @@ void ih264d_init_ref_idx_lx_b(dec_struct_t *ps_dec)
/* reference list to handle of errors */
{
UWORD8 u1_i;
pic_buffer_t *ps_ref_pic;
pic_buffer_t ref_pic;
ps_ref_pic = ps_dpb_mgr->ps_init_dpb[0][0];
ref_pic = *(ps_dpb_mgr->ps_init_dpb[0][0]);
if(NULL == ps_ref_pic->pu1_buf1)
if(NULL == ref_pic.pu1_buf1)
{
ps_ref_pic = ps_dec->ps_cur_pic;
ref_pic = *ps_dec->ps_cur_pic;
}
for(u1_i = u1_L1; u1_i < u1_max_ref_idx_l1; u1_i++)
{
*ps_ref_pic_buf_lx = *ps_ref_pic;
*ps_ref_pic_buf_lx = ref_pic;
ps_ref_pic_buf_lx++;
}
}

View file

@ -1093,17 +1093,17 @@ void ih264d_init_ref_idx_lx_p(dec_struct_t *ps_dec)
/* reference list to handle of errors */
{
UWORD8 u1_i;
pic_buffer_t *ps_ref_pic;
pic_buffer_t ref_pic;
ps_ref_pic = ps_dpb_mgr->ps_init_dpb[0][0] + MAX_REF_BUFS;
ref_pic = *(ps_dpb_mgr->ps_init_dpb[0][0] + MAX_REF_BUFS);
if(NULL == ps_ref_pic->pu1_buf1)
if(NULL == ref_pic.pu1_buf1)
{
ps_ref_pic = ps_dec->ps_cur_pic;
ref_pic = *ps_dec->ps_cur_pic;
}
for(u1_i = u1_L0; u1_i < u1_max_ref_idx_l0; u1_i++)
{
*ps_ref_pic_buf_lx = *ps_ref_pic;
*ps_ref_pic_buf_lx = ref_pic;
ps_ref_pic_buf_lx++;
}
}
@ -1119,17 +1119,17 @@ void ih264d_init_ref_idx_lx_p(dec_struct_t *ps_dec)
/* reference list to handle of errors */
{
UWORD8 u1_i;
pic_buffer_t *ps_ref_pic;
pic_buffer_t ref_pic;
ps_ref_pic = ps_dpb_mgr->ps_init_dpb[0][0];
ref_pic = *(ps_dpb_mgr->ps_init_dpb[0][0]);
if(NULL == ps_ref_pic->pu1_buf1)
if(NULL == ref_pic.pu1_buf1)
{
ps_ref_pic = ps_dec->ps_cur_pic;
ref_pic = *ps_dec->ps_cur_pic;
}
for(u1_i = u1_L0; u1_i < u1_max_ref_idx_l0; u1_i++)
{
*ps_ref_pic_buf_lx = *ps_ref_pic;
*ps_ref_pic_buf_lx = ref_pic;
ps_ref_pic_buf_lx++;
}
}