[FFmpeg-devel] [PATCH v2] avutils/video_enc_params: fix type-limits compile warning on 64 bits build system
Carl Eugen Hoyos
ceffmpeg at gmail.com
Sun Feb 14 19:10:50 EET 2021
Am So., 14. Feb. 2021 um 17:57 Uhr schrieb Nuo Mi <nuomi2021 at gmail.com>:
>
> 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;
Apart from the ugliness (that may be unavoidable, I get the warning
here for both "if (0 && condition)" and "if (0) if (condition)"), the
comment is unnecessary.
Not sure if the condition is guaranteed to be sufficient, a sizeof() trick
might be necessary.
Carl Eugen
More information about the ffmpeg-devel
mailing list