]> git.sesse.net Git - ffmpeg/commitdiff
mpeg4videoenc: Don't crash with -fsanitize=bounds
authorVitaly Buka <vitalybuka-at-google.com@ffmpeg.org>
Wed, 22 Apr 2020 04:34:19 +0000 (21:34 -0700)
committerMichael Niedermayer <michael@niedermayer.cc>
Wed, 22 Apr 2020 21:21:10 +0000 (23:21 +0200)
Also the patch makes this code consistent with mpeg4videodec.c

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/mpeg4videoenc.c

index f6a5992df776d0ea874badb5b64081f7ad57d91b..2cd5a8c01532bf30b8afe34dad1a1d8d37d16419 100644 (file)
@@ -104,7 +104,7 @@ static inline void restore_ac_coeffs(MpegEncContext *s, int16_t block[6][64],
     memcpy(s->block_last_index, zigzag_last_index, sizeof(int) * 6);
 
     for (n = 0; n < 6; n++) {
-        int16_t *ac_val = s->ac_val[0][0] + s->block_index[n] * 16;
+        int16_t *ac_val = &s->ac_val[0][0][0] + s->block_index[n] * 16;
 
         st[n] = s->intra_scantable.permutated;
         if (dir[n]) {
@@ -143,7 +143,7 @@ static inline int decide_ac_pred(MpegEncContext *s, int16_t block[6][64],
         score -= get_block_rate(s, block[n], s->block_last_index[n],
                                 s->intra_scantable.permutated);
 
-        ac_val  = s->ac_val[0][0] + s->block_index[n] * 16;
+        ac_val  = &s->ac_val[0][0][0] + s->block_index[n] * 16;
         ac_val1 = ac_val;
         if (dir[n]) {
             const int xy = s->mb_x + s->mb_y * s->mb_stride - s->mb_stride;