gl: Don't leak pool if set_config failed
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Fri, 26 Jun 2015 19:34:35 +0000 (15:34 -0400)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Thu, 2 Jul 2015 13:40:05 +0000 (09:40 -0400)
ext/gl/gstglmixer.c
gst-libs/gst/gl/gstglupload.c

index 119ab5a..401e4ed 100644 (file)
@@ -165,13 +165,14 @@ gst_gl_mixer_propose_allocation (GstGLBaseMixer * base_mix,
 
     config = gst_buffer_pool_get_config (pool);
     gst_buffer_pool_config_set_params (config, caps, size, 0, 0);
-    if (!gst_buffer_pool_set_config (pool, config))
+
+    if (!gst_buffer_pool_set_config (pool, config)) {
+      g_object_unref (pool);
       goto config_failed;
-  }
+    }
 
-  if (pool) {
     gst_query_add_allocation_pool (query, pool, size, 1, 0);
-    gst_object_unref (pool);
+    g_object_unref (pool);
   }
 
   /* we also support various metadata */
index c37eed3..0ccf328 100644 (file)
@@ -230,8 +230,10 @@ _gl_memory_upload_propose_allocation (gpointer impl, GstQuery * decide_query,
     size = info.size;
     gst_buffer_pool_config_set_params (config, caps, size, 0, 0);
 
-    if (!gst_buffer_pool_set_config (pool, config))
+    if (!gst_buffer_pool_set_config (pool, config)) {
+      gst_object_unref (pool);
       goto config_failed;
+    }
 
     gst_query_add_allocation_pool (query, pool, size, 1, 0);
   }