mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
avcodec/h264_direct: Fix runtime error: signed integer overflow: -9 - 2147483647 cannot be represented in type 'int'
Fixes: 864/clusterfuzz-testcase-4774385942528000 See: [FFmpeg-devel] [PATCH 1/2] avcodec/h264_direct: Fix runtime error: signed integer overflow: 2147483647 - -14133 cannot be represented in type 'int' See: [FFmpeg-devel] [PATCH 2/2] avcodec/h264_direct: Fix runtime error: signed integer overflow: -9 - 2147483647 cannot be represented in type 'int' Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
5d996b5649
commit
a84d610b37
@ -48,8 +48,13 @@ static int get_scale_factor(H264SliceContext *sl,
|
||||
if (td == 0 || sl->ref_list[0][i].parent->long_ref) {
|
||||
return 256;
|
||||
} else {
|
||||
int tb = av_clip_int8(poc - poc0);
|
||||
int64_t pocdiff0 = poc - (int64_t)poc0;
|
||||
int tb = av_clip_int8(pocdiff0);
|
||||
int tx = (16384 + (FFABS(td) >> 1)) / td;
|
||||
|
||||
if (pocdiff0 != (int)pocdiff0)
|
||||
av_log(sl->h264->avctx, AV_LOG_DEBUG, "pocdiff0 overflow\n");
|
||||
|
||||
return av_clip_intp2((tb * tx + 32) >> 6, 10);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user