gldisplay: Fix context leak when removing a context from the display
authorSebastian Dröge <sebastian@centricular.com>
Wed, 6 May 2020 13:13:11 +0000 (16:13 +0300)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Wed, 6 May 2020 14:46:17 +0000 (14:46 +0000)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/654>

gst-libs/gst/gl/gstgldisplay.c

index ec9e45e..8c9b136 100644 (file)
@@ -906,12 +906,13 @@ gst_gl_display_remove_context (GstGLDisplay * display, GstGLContext * needle)
       g_weak_ref_clear (l->data);
       g_free (l->data);
       display->priv->contexts = g_list_delete_link (display->priv->contexts, l);
-      l = prev ? prev->next : display->priv->contexts;
       if (context) {
         GST_INFO_OBJECT (display, "removed context %" GST_PTR_FORMAT
             " from internal list", context);
+        gst_object_unref (context);
         return;
       }
+      l = prev ? prev->next : display->priv->contexts;
       continue;
     }
     prev = l;