[FFmpeg-devel] [PATCH 5/5] avformat/pcm: Use 64bit in bitrate computation

Marton Balint cus at passwd.hu
Thu Apr 4 20:12:40 EEST 2024



On Thu, 4 Apr 2024, Michael Niedermayer wrote:

> Fixes: signed integer overflow: 65792 * 65312 cannot be represented in type 'int'
> Fixes: 67819/clusterfuzz-testcase-minimized-ffmpeg_dem_WADY_fuzzer-5236100912185344
>
> Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> ---
> libavformat/pcm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavformat/pcm.c b/libavformat/pcm.c
> index 051e86dd464..a774dbc3726 100644
> --- a/libavformat/pcm.c
> +++ b/libavformat/pcm.c
> @@ -41,7 +41,7 @@ int ff_pcm_default_packet_size(AVCodecParameters *par)
>     /* Don't trust the codecpar bitrate if we can calculate it ourselves */
>     if (bits_per_sample > 0 && par->sample_rate > 0 && par->ch_layout.nb_channels > 0)
>         if ((int64_t)par->sample_rate * par->ch_layout.nb_channels < INT64_MAX / bits_per_sample)
> -            bitrate = bits_per_sample * par->sample_rate * par->ch_layout.nb_channels;
> +            bitrate = bits_per_sample * (int64_t)par->sample_rate * par->ch_layout.nb_channels;

LGTM, thanks.

I wonder why we usually cast the second operand and not the first to 64 
bit, since cast has higher precedence than multiplication, it should not 
matter, should it?

Regards,
Marton


More information about the ffmpeg-devel mailing list