rtpbin: do not leak encsink pad in error case
authorOgnyan Tonchev <ognyan@axis.com>
Wed, 17 Sep 2014 14:37:11 +0000 (16:37 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 18 Sep 2014 09:49:53 +0000 (12:49 +0300)
https://bugzilla.gnome.org/show_bug.cgi?id=736807

gst/rtpmanager/gstrtpbin.c

index 9b1b86a..32472d9 100644 (file)
@@ -3663,16 +3663,16 @@ create_rtcp (GstRtpBin * rtpbin, GstPadTemplate * templ, const gchar * name)
     GstPadLinkReturn ret;
 
     GST_DEBUG_OBJECT (rtpbin, "linking RTCP encoder");
-    ename = g_strdup_printf ("rtcp_sink_%d", sessid);
-    encsink = gst_element_get_static_pad (encoder, ename);
-    g_free (ename);
+
     ename = g_strdup_printf ("rtcp_src_%d", sessid);
     encsrc = gst_element_get_static_pad (encoder, ename);
     g_free (ename);
-
     if (encsrc == NULL)
       goto enc_src_failed;
 
+    ename = g_strdup_printf ("rtcp_sink_%d", sessid);
+    encsink = gst_element_get_static_pad (encoder, ename);
+    g_free (ename);
     if (encsink == NULL)
       goto enc_sink_failed;