[gnome-keyring] dbus: plug some memory leaks
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-keyring] dbus: plug some memory leaks
- Date: Mon, 29 Jun 2015 16:38:16 +0000 (UTC)
commit 5d6c9d37c1adf1414a3b63a2a2a1cc764591caf6
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Fri Nov 14 13:43:33 2014 -0800
dbus: plug some memory leaks
daemon/dbus/gkd-dbus-session.c | 45 +++++++++++++++++++++---------------
daemon/dbus/gkd-secret-property.c | 8 +++++-
2 files changed, 32 insertions(+), 21 deletions(-)
---
diff --git a/daemon/dbus/gkd-dbus-session.c b/daemon/dbus/gkd-dbus-session.c
index e979aa1..8d5033c 100644
--- a/daemon/dbus/gkd-dbus-session.c
+++ b/daemon/dbus/gkd-dbus-session.c
@@ -43,31 +43,36 @@ send_end_session_response (GDBusConnection *conn)
const gchar *reason = "";
gboolean is_ok = TRUE;
GError *error = NULL;
+ GVariant *res;
g_return_if_fail (client_session_path);
- g_dbus_connection_call_sync (conn,
- SERVICE_SESSION_MANAGER,
- client_session_path,
- IFACE_SESSION_PRIVATE,
- "EndSessionResponse",
- g_variant_new ("(bs)",
- is_ok,
- reason),
- NULL,
- G_DBUS_CALL_FLAGS_NONE, 1000,
- NULL, &error);
+ res = g_dbus_connection_call_sync (conn,
+ SERVICE_SESSION_MANAGER,
+ client_session_path,
+ IFACE_SESSION_PRIVATE,
+ "EndSessionResponse",
+ g_variant_new ("(bs)",
+ is_ok,
+ reason),
+ NULL,
+ G_DBUS_CALL_FLAGS_NONE, 1000,
+ NULL, &error);
if (error != NULL) {
g_message ("dbus failure responding to ending session: %s", error->message);
g_error_free (error);
return;
}
+
+ g_variant_unref (res);
}
static void
unregister_daemon_in_session (GDBusConnection *conn)
{
+ GVariant *res;
+
if (client_session_signal_id) {
g_dbus_connection_signal_unsubscribe (conn, client_session_signal_id);
client_session_signal_id = 0;
@@ -76,17 +81,19 @@ unregister_daemon_in_session (GDBusConnection *conn)
if (!client_session_path)
return;
- g_dbus_connection_call_sync (conn,
- SERVICE_SESSION_MANAGER,
- PATH_SESSION_MANAGER,
- IFACE_SESSION_MANAGER,
- "UnregisterClient",
- g_variant_new ("(o)", client_session_path),
- NULL, G_DBUS_CALL_FLAGS_NONE,
- -1, NULL, NULL);
+ res = g_dbus_connection_call_sync (conn,
+ SERVICE_SESSION_MANAGER,
+ PATH_SESSION_MANAGER,
+ IFACE_SESSION_MANAGER,
+ "UnregisterClient",
+ g_variant_new ("(o)", client_session_path),
+ NULL, G_DBUS_CALL_FLAGS_NONE,
+ -1, NULL, NULL);
g_free (client_session_path);
client_session_path = NULL;
+
+ g_clear_pointer (&res, g_variant_unref);
}
static void
diff --git a/daemon/dbus/gkd-secret-property.c b/daemon/dbus/gkd-secret-property.c
index 9c30d80..3be7f6a 100644
--- a/daemon/dbus/gkd-secret-property.c
+++ b/daemon/dbus/gkd-secret-property.c
@@ -457,14 +457,18 @@ gkd_secret_property_parse_all (GVariant *array,
g_variant_iter_init (&iter, array);
- while (g_variant_iter_loop (&iter, "{sv}", &name, &variant)) {
+ while (g_variant_iter_next (&iter, "{&sv}", &name, &variant)) {
/* Property interface.name */
if (!property_to_attribute (name, interface, &attr_type, &data_type))
return FALSE;
/* Property value */
- if (!iter_get_variant (variant, data_type, attr_type, builder))
+ if (!iter_get_variant (variant, data_type, attr_type, builder)) {
+ g_variant_unref (variant);
return FALSE;
+ }
+
+ g_variant_unref (variant);
}
return TRUE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]