]> git.sesse.net Git - ffmpeg/commitdiff
avformat/utils: avoid unsigned integer overflows
authorPaul B Mahol <onemda@gmail.com>
Sat, 15 Feb 2020 13:52:47 +0000 (14:52 +0100)
committerPaul B Mahol <onemda@gmail.com>
Sun, 16 Feb 2020 12:04:01 +0000 (13:04 +0100)
libavformat/utils.c

index 7ff5ea97028717a0cc2849107992ed8fb7b60a61..d5ad4ec4b043e609304763cee94b0d0fbf663427 100644 (file)
@@ -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--) {