Re: [FFmpeg-devel] [PATCH 2/3] avcodec/vc1_block: Fix integer overflow in ff_vc1_pred_dc()

2019-07-31 Thread Michael Niedermayer
On Fri, Jul 05, 2019 at 01:28:34AM +0200, Michael Niedermayer wrote:
> Fixes: signed integer overflow: 32796 * 65536 cannot be represented in type 
> 'int'
> Fixes: 
> 15430/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VC1IMAGE_fuzzer-5735424087031808
> 
> Found-by: continuous fuzzing process 
> https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> Signed-off-by: Michael Niedermayer 
> ---
>  libavcodec/vc1_block.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)

will apply

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Avoid a single point of failure, be that a person or equipment.


signature.asc
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

[FFmpeg-devel] [PATCH 2/3] avcodec/vc1_block: Fix integer overflow in ff_vc1_pred_dc()

2019-07-04 Thread Michael Niedermayer
Fixes: signed integer overflow: 32796 * 65536 cannot be represented in type 
'int'
Fixes: 
15430/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VC1IMAGE_fuzzer-5735424087031808

Found-by: continuous fuzzing process 
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer 
---
 libavcodec/vc1_block.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavcodec/vc1_block.c b/libavcodec/vc1_block.c
index 86320db959..3078ce20cc 100644
--- a/libavcodec/vc1_block.c
+++ b/libavcodec/vc1_block.c
@@ -430,12 +430,12 @@ static inline int ff_vc1_pred_dc(MpegEncContext *s, int 
overlap, int pq, int n,
 if (c_avail && (n != 1 && n != 3)) {
 q2 = FFABS(s->current_picture.qscale_table[mb_pos - 1]);
 if (q2 && q2 != q1)
-c = (c * s->y_dc_scale_table[q2] * ff_vc1_dqscale[dqscale_index] + 
0x2) >> 18;
+c = (int)((unsigned)c * s->y_dc_scale_table[q2] * 
ff_vc1_dqscale[dqscale_index] + 0x2) >> 18;
 }
 if (a_avail && (n != 2 && n != 3)) {
 q2 = FFABS(s->current_picture.qscale_table[mb_pos - s->mb_stride]);
 if (q2 && q2 != q1)
-a = (a * s->y_dc_scale_table[q2] * ff_vc1_dqscale[dqscale_index] + 
0x2) >> 18;
+a = (int)((unsigned)a * s->y_dc_scale_table[q2] * 
ff_vc1_dqscale[dqscale_index] + 0x2) >> 18;
 }
 if (a_avail && c_avail && (n != 3)) {
 int off = mb_pos;
@@ -445,7 +445,7 @@ static inline int ff_vc1_pred_dc(MpegEncContext *s, int 
overlap, int pq, int n,
 off -= s->mb_stride;
 q2 = FFABS(s->current_picture.qscale_table[off]);
 if (q2 && q2 != q1)
-b = (b * s->y_dc_scale_table[q2] * ff_vc1_dqscale[dqscale_index] + 
0x2) >> 18;
+b = (int)((unsigned)b * s->y_dc_scale_table[q2] * 
ff_vc1_dqscale[dqscale_index] + 0x2) >> 18;
 }
 
 if (c_avail && (!a_avail || abs(a - b) <= abs(b - c))) {
-- 
2.22.0

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".