mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avcodec/rv40: Fix runtime error: left shift of negative value
Fixes: 630/clusterfuzz-testcase-6608718928019456
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 956472a323
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
37400a9068
commit
a9d1e7d3c8
@ -189,7 +189,7 @@ static int rv40_decode_intra_types(RV34DecContext *r, GetBitContext *gb, int8_t
|
||||
A = ptr[-r->intra_types_stride + 1]; // it won't be used for the last coefficient in a row
|
||||
B = ptr[-r->intra_types_stride];
|
||||
C = ptr[-1];
|
||||
pattern = A + (B << 4) + (C << 8);
|
||||
pattern = A + B * (1 << 4) + C * (1 << 8);
|
||||
for(k = 0; k < MODE2_PATTERNS_NUM; k++)
|
||||
if(pattern == rv40_aic_table_index[k])
|
||||
break;
|
||||
|
@ -449,7 +449,7 @@ static av_always_inline void rv40_weak_loop_filter(uint8_t *src,
|
||||
if (u > 3 - (filter_p1 && filter_q1))
|
||||
continue;
|
||||
|
||||
t <<= 2;
|
||||
t *= 1 << 2;
|
||||
if (filter_p1 && filter_q1)
|
||||
t += src[-2*step] - src[1*step];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user