[FFmpeg-devel] [PATCH 1/3] avformat/utils: Remove redundant check
Andreas Rheinhardt
andreas.rheinhardt at gmail.com
Fri Mar 26 06:37:59 EET 2021
Andreas Rheinhardt:
> This check is outdated because the caller doesn't need to check that
> the multiplication overflows when using av_realloc_array() (the code
> in question used av_realloc() before that); furthermore, the check
> is also a remnant of the time in which our allocation functions
> didn't use size_t parameters.
>
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> ---
> It would btw make more sense for AVFormatContext.max_streams to be
> unsigned.
>
> libavformat/utils.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/libavformat/utils.c b/libavformat/utils.c
> index 524765aeb4..88f6f18f1f 100644
> --- a/libavformat/utils.c
> +++ b/libavformat/utils.c
> @@ -4493,9 +4493,10 @@ AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c)
> int i;
> AVStream **streams;
>
> - if (s->nb_streams >= FFMIN(s->max_streams, INT_MAX/sizeof(*streams))) {
> - if (s->max_streams < INT_MAX/sizeof(*streams))
> - av_log(s, AV_LOG_ERROR, "Number of streams exceeds max_streams parameter (%d), see the documentation if you wish to increase it\n", s->max_streams);
> + if (s->nb_streams >= s->max_streams) {
> + av_log(s, AV_LOG_ERROR, "Number of streams exceeds max_streams parameter"
> + " (%d), see the documentation if you wish to increase it\n",
> + s->max_streams);
> return NULL;
> }
> streams = av_realloc_array(s->streams, s->nb_streams + 1, sizeof(*streams));
>
Will apply this patchset tomorrow unless there are objections.
- Andreas
More information about the ffmpeg-devel
mailing list