auth, media, media-factory: unref permissions
authorJonas Holmberg <jonashg@axis.com>
Thu, 5 Sep 2013 06:53:55 +0000 (08:53 +0200)
committerTim-Philipp Müller <tim@centricular.net>
Fri, 6 Sep 2013 17:57:55 +0000 (18:57 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=707638

gst/rtsp-server/rtsp-auth.c
gst/rtsp-server/rtsp-media-factory.c
gst/rtsp-server/rtsp-media.c

index 7264128..28adba5 100644 (file)
@@ -491,6 +491,9 @@ check_factory (GstRTSPAuth * auth, GstRTSPContext * ctx, const gchar * check)
             GST_RTSP_PERM_MEDIA_FACTORY_CONSTRUCT))
       goto no_construct;
   }
+
+  gst_rtsp_permissions_unref (perms);
+
   return TRUE;
 
   /* ERRORS */
@@ -509,12 +512,14 @@ no_permissions:
 no_access:
   {
     GST_DEBUG_OBJECT (auth, "no permissions to access media factory");
+    gst_rtsp_permissions_unref (perms);
     send_response (auth, GST_RTSP_STS_NOT_FOUND, ctx);
     return FALSE;
   }
 no_construct:
   {
     GST_DEBUG_OBJECT (auth, "no permissions to construct media factory");
+    gst_rtsp_permissions_unref (perms);
     send_response (auth, GST_RTSP_STS_UNAUTHORIZED, ctx);
     return FALSE;
   }
index 8216f5d..59b1b02 100644 (file)
@@ -210,6 +210,8 @@ gst_rtsp_media_factory_finalize (GObject * obj)
   GstRTSPMediaFactory *factory = GST_RTSP_MEDIA_FACTORY (obj);
   GstRTSPMediaFactoryPrivate *priv = factory->priv;
 
+  if (priv->permissions)
+    gst_rtsp_permissions_unref (priv->permissions);
   g_hash_table_unref (priv->medias);
   g_mutex_clear (&priv->medias_lock);
   g_free (priv->launch);
index 93f1565..2c1f53d 100644 (file)
@@ -292,6 +292,9 @@ gst_rtsp_media_finalize (GObject * obj)
 
   GST_INFO ("finalize media %p", media);
 
+  if (priv->permissions)
+    gst_rtsp_permissions_unref (priv->permissions);
+
   g_ptr_array_unref (priv->streams);
 
   g_list_free_full (priv->dynamic, gst_object_unref);