From 96840e47de5199c258285d7b51f09d04ec0d1b72 Mon Sep 17 00:00:00 2001 From: Paul B Mahol <onemda@gmail.com> Date: Sat, 15 Feb 2020 14:52:47 +0100 Subject: [PATCH] avformat/utils: avoid unsigned integer overflows --- libavformat/utils.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 7ff5ea9702..d5ad4ec4b0 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -4455,15 +4455,17 @@ void avformat_free_context(AVFormatContext *s) if (s->oformat && s->oformat->priv_class && s->priv_data) av_opt_free(s->priv_data); - for (i = s->nb_streams - 1; i >= 0; i--) - ff_free_stream(s, s->streams[i]); + for (i = 0; i < s->nb_streams; i++) + free_stream(&s->streams[i]); + s->nb_streams = 0; - - for (i = s->nb_programs - 1; i >= 0; i--) { + for (i = 0; i < s->nb_programs; i++) { av_dict_free(&s->programs[i]->metadata); av_freep(&s->programs[i]->stream_index); av_freep(&s->programs[i]); } + s->nb_programs = 0; + av_freep(&s->programs); av_freep(&s->priv_data); while (s->nb_chapters--) {