libswscale/utils.c: Fix bug #8255
authorGautam Ramakrishnan <gautamramk@gmail.com>
Sun, 9 Feb 2020 18:33:09 +0000 (00:03 +0530)
committerMichael Niedermayer <michael@niedermayer.cc>
Sun, 9 Feb 2020 22:33:18 +0000 (23:33 +0100)
Bug #8255 points out a double free error in libwscale/utils.c file.
The double free is because the pointer to cascaded_context of an
sw_context is not set to NULL after freeing it. When the sw_context
is later freed, sws_freeContext is called on the cascaded_context,
causing a double free.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libswscale/utils.c

index b2c08a5..e9c66ae 100644 (file)
@@ -1502,6 +1502,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
         ff_free_filters(c2);
         if (ff_init_filters(c2) < 0) {
             sws_freeContext(c2);
+            c->cascaded_context[1] = NULL;
             return -1;
         }