[FFmpeg-devel] [PATCH v2] avutils/video_enc_params: fix type-limits compile warning on 64 bits build system

Nuo Mi nuomi2021 at gmail.com
Sun Feb 14 18:57:25 EET 2021


On Mon, Feb 15, 2021 at 12:41 AM Nuo Mi <nuomi2021 at gmail.com> wrote:

> This will fix following compile warning:
>
>     libavutil/video_enc_params.c: In function ‘av_video_enc_params_alloc:
>
>
>            libavutil/video_enc_params.c:36:19: warning: comparison is
> always false due to limited range of data type [-Wtype-limits]
>
>                              36 |     if (nb_blocks > SIZE_MAX /
> sizeof(AVVideoBlockParams) ||
>
>                                                      |                   ^
> ---
>  libavutil/video_enc_params.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/libavutil/video_enc_params.c b/libavutil/video_enc_params.c
> index c46c0f1dc6..2606b5589a 100644
> --- a/libavutil/video_enc_params.c
> +++ b/libavutil/video_enc_params.c
> @@ -33,7 +33,11 @@ AVVideoEncParams *av_video_enc_params_alloc(enum
> AVVideoEncParamsType type,
>      size_t size;
>
>      size = sizeof(*par);
> -    if (nb_blocks > SIZE_MAX / sizeof(AVVideoBlockParams) ||
> +    if (
> +#if SIZE_MAX <= UINT_MAX
> +        //check the overflow
> +        nb_blocks > SIZE_MAX / sizeof(AVVideoBlockParams) ||
> +#endif
>          nb_blocks * sizeof(AVVideoBlockParams) > SIZE_MAX - size)
>          return NULL;
>      size += sizeof(AVVideoBlockParams) * nb_blocks;

 Hi Anton,
The code never overflow on a 64 bits machine.
How about we add a #ifdef like this?

thanks

>

-- 
> 2.25.1
>
>


More information about the ffmpeg-devel mailing list