From 782bc97e6f340e8c0b9af3750e80b641bd97e71d Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Mon, 2 May 2016 16:00:42 +0200 Subject: [PATCH] deviceproviderfactory: fix factory leak The code path when early returning was leaking the extra reference on the factory. https://bugzilla.gnome.org/show_bug.cgi?id=765904 --- gst/gstdeviceproviderfactory.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gst/gstdeviceproviderfactory.c b/gst/gstdeviceproviderfactory.c index a28a0bd..2257ad7 100644 --- a/gst/gstdeviceproviderfactory.c +++ b/gst/gstdeviceproviderfactory.c @@ -275,8 +275,10 @@ gst_device_provider_factory_get (GstDeviceProviderFactory * factory) goto no_type; device_provider = g_atomic_pointer_get (&newfactory->provider); - if (device_provider) + if (device_provider) { + gst_object_unref (factory); return gst_object_ref (device_provider); + } /* create an instance of the device provider, cast so we don't assert on NULL * also set name as early as we can -- 2.7.4