summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorMarco Barisione <marco@barisione.org>2011-01-27 19:02:27 +0000
committerMarco Barisione <marco@barisione.org>2011-01-27 19:02:27 +0000
commit0d69567e4d0d94e6018c10f528b177195c75b958 (patch)
treef5c9c7f855e09a9ad12da5a83f2f0572c0e65627 /plugins
parentfa4de0d15ea4f2184e76f935ff79708fcee11eb4 (diff)
Aegis plugin: fix a leak of DBus proxies
Fixes: <https://bugs.freedesktop.org/show_bug.cgi?id=33612>
Diffstat (limited to 'plugins')
-rw-r--r--plugins/mcp-dbus-aegis-acl.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/plugins/mcp-dbus-aegis-acl.c b/plugins/mcp-dbus-aegis-acl.c
index f944cac2..f94d445e 100644
--- a/plugins/mcp-dbus-aegis-acl.c
+++ b/plugins/mcp-dbus-aegis-acl.c
@@ -198,24 +198,28 @@ async_authorised_cb (DBusGProxy *proxy,
pid, permitted ? "Allowed" : "Forbidden");
mcp_dbus_acl_authorised_async_step (ad, permitted);
+
+ g_object_unref (proxy);
}
static void
caller_async_authorised (const McpDBusAcl *self,
DBusAclAuthData *data)
{
- DBusGConnection *dgc = tp_proxy_get_dbus_connection (data->dbus);
- DBusGProxy *proxy = dbus_g_proxy_new_for_name (dgc,
- DBUS_SERVICE_DBUS,
- DBUS_PATH_DBUS,
- DBUS_INTERFACE_DBUS);
-
DEBUG ("starting async caller-permission ACL check");
if (is_filtered (data->type, data->name, data->params))
{
+ DBusGConnection *dgc;
+ DBusGProxy *proxy;
gchar *caller = dbus_g_method_get_sender (data->context);
+ dgc = tp_proxy_get_dbus_connection (data->dbus);
+ proxy = dbus_g_proxy_new_for_name (dgc,
+ DBUS_SERVICE_DBUS,
+ DBUS_PATH_DBUS,
+ DBUS_INTERFACE_DBUS);
+
dbus_g_proxy_begin_call (proxy, "GetConnectionUnixProcessID",
async_authorised_cb,
data,