[FFmpeg-devel] [PATCH] avformat/avidec: Fix integer overflow iff ULONG_MAX < INT64_MAX

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Wed Mar 13 01:01:07 EET 2024


James Almer:
> On 3/12/2024 7:57 PM, Andreas Rheinhardt wrote:
>> Affects many FATE-tests, see
>> http://fate.ffmpeg.org/report.cgi?time=20240312011016&slot=ppc-linux-gcc-13.2-ubsan-altivec-qemu
>>
>> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
>> ---
>>   libavformat/avidec.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavformat/avidec.c b/libavformat/avidec.c
>> index f3183b2698..b7cbf148af 100644
>> --- a/libavformat/avidec.c
>> +++ b/libavformat/avidec.c
>> @@ -1696,7 +1696,7 @@ static int
>> check_stream_max_drift(AVFormatContext *s)
>>       int *idx = av_calloc(s->nb_streams, sizeof(*idx));
>>       if (!idx)
>>           return AVERROR(ENOMEM);
>> -    for (min_pos = pos = 0; min_pos != INT64_MAX; pos = min_pos + 1LU) {
>> +    for (min_pos = pos = 0; min_pos != INT64_MAX; pos = min_pos +
>> (uint64_t)1) {
> 
> nit: 1ULL
> 

The other variables are int64_t, not long long int, so using uint64_t is
appropriate.

- Andreas



More information about the ffmpeg-devel mailing list