From: Nirbheek Chauhan Date: Wed, 10 Feb 2016 14:26:59 +0000 (+0530) Subject: v4l2: Don't leak v4l2 objects and props on probe errors X-Git-Tag: 1.19.3~509^2~2850 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a5369c6be36fb22b505bb765f987212b39bcf408;p=platform%2Fupstream%2Fgstreamer.git v4l2: Don't leak v4l2 objects and props on probe errors --- diff --git a/sys/v4l2/gstv4l2deviceprovider.c b/sys/v4l2/gstv4l2deviceprovider.c index e606f84..d521838 100644 --- a/sys/v4l2/gstv4l2deviceprovider.c +++ b/sys/v4l2/gstv4l2deviceprovider.c @@ -100,7 +100,7 @@ static GstV4l2Device * gst_v4l2_device_provider_probe_device (GstV4l2DeviceProvider * provider, const gchar * device_path, const gchar * device_name, GstStructure * props) { - GstV4l2Object *v4l2obj; + GstV4l2Object *v4l2obj = NULL; GstCaps *caps; GstV4l2Device *device = NULL; struct stat st; @@ -109,10 +109,10 @@ gst_v4l2_device_provider_probe_device (GstV4l2DeviceProvider * provider, g_return_val_if_fail (props != NULL, NULL); if (stat (device_path, &st) == -1) - return NULL; + goto destroy; if (!S_ISCHR (st.st_mode)) - return NULL; + goto destroy; v4l2obj = gst_v4l2_object_new ((GstElement *) provider, V4L2_BUF_TYPE_VIDEO_CAPTURE, device_path, NULL, NULL, NULL); @@ -172,7 +172,8 @@ close: destroy: - gst_v4l2_object_destroy (v4l2obj); + if (v4l2obj) + gst_v4l2_object_destroy (v4l2obj); if (props) gst_structure_free (props);