diff mbox

[FFmpeg-devel] avcodec/vc1_block: simplify ac_val computation

Message ID 20180423000810.30294-1-michael@niedermayer.cc
State Accepted
Commit d06b01fc2d4f5e031d45f9460d1eea610d23d6c5
Headers show

Commit Message

Michael Niedermayer April 23, 2018, 12:08 a.m. UTC
also fixes: runtime error: index 1456 out of bounds for type 'int16_t [16]'

Found-by: durandal_1707

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libavcodec/vc1_block.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Paul B Mahol April 23, 2018, 7:56 a.m. UTC | #1
On 4/23/18, Michael Niedermayer <michael@niedermayer.cc> wrote:
> also fixes: runtime error: index 1456 out of bounds for type 'int16_t [16]'
>
> Found-by: durandal_1707
>
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  libavcodec/vc1_block.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>

LGTM
Michael Niedermayer April 24, 2018, 5:59 p.m. UTC | #2
On Mon, Apr 23, 2018 at 09:56:54AM +0200, Paul B Mahol wrote:
> On 4/23/18, Michael Niedermayer <michael@niedermayer.cc> wrote:
> > also fixes: runtime error: index 1456 out of bounds for type 'int16_t [16]'
> >
> > Found-by: durandal_1707
> >
> > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > ---
> >  libavcodec/vc1_block.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> >
> 
> LGTM

applied

thx

[...]
diff mbox

Patch

diff --git a/libavcodec/vc1_block.c b/libavcodec/vc1_block.c
index f9f26f7e42..b06ee9fce7 100644
--- a/libavcodec/vc1_block.c
+++ b/libavcodec/vc1_block.c
@@ -594,7 +594,7 @@  static int vc1_decode_i_block(VC1Context *v, int16_t block[64], int n,
         scale = s->c_dc_scale;
     block[0] = dcdiff * scale;
 
-    ac_val  = s->ac_val[0][0] + s->block_index[n] * 16;
+    ac_val  = s->ac_val[0][s->block_index[n]];
     ac_val2 = ac_val;
     if (dc_pred_dir) // left
         ac_val -= 16;
@@ -745,7 +745,7 @@  static int vc1_decode_i_block_adv(VC1Context *v, int16_t block[64], int n,
 
     scale = mquant * 2 + ((mquant == v->pq) ? v->halfpq : 0);
 
-    ac_val  = s->ac_val[0][0] + s->block_index[n] * 16;
+    ac_val  = s->ac_val[0][s->block_index[n]];
     ac_val2 = ac_val;
     if (dc_pred_dir) // left
         ac_val -= 16;
@@ -946,7 +946,7 @@  static int vc1_decode_intra_block(VC1Context *v, int16_t block[64], int n,
     if (!a_avail) dc_pred_dir = 1;
     if (!c_avail) dc_pred_dir = 0;
     if (!a_avail && !c_avail) use_pred = 0;
-    ac_val = s->ac_val[0][0] + s->block_index[n] * 16;
+    ac_val = s->ac_val[0][s->block_index[n]];
     ac_val2 = ac_val;
 
     scale = mquant * 2 + v->halfpq;