element: NULL the lists of contexts in dispose()
authorMatthew Waters <matthew@centricular.com>
Fri, 27 Aug 2021 03:51:07 +0000 (13:51 +1000)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 27 Aug 2021 05:40:55 +0000 (05:40 +0000)
If dispose() is called more than once, we may double unref the list of
GstContext's.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/875>

gst/gstelement.c

index 82244a8..7dab1dc 100644 (file)
@@ -3416,6 +3416,7 @@ gst_element_dispose (GObject * object)
   gst_object_replace ((GstObject **) clock_p, NULL);
   gst_object_replace ((GstObject **) bus_p, NULL);
   g_list_free_full (element->contexts, (GDestroyNotify) gst_context_unref);
+  element->contexts = NULL;
   GST_OBJECT_UNLOCK (element);
 
   GST_CAT_INFO_OBJECT (GST_CAT_REFCOUNTING, element, "%p parent class dispose",