diff --git a/src/nm-bus-manager.c b/src/nm-bus-manager.c index 270792ef9d..58a80923e4 100644 --- a/src/nm-bus-manager.c +++ b/src/nm-bus-manager.c @@ -164,7 +164,10 @@ close_connection_in_idle (gpointer user_data) g_hash_table_iter_init (&iter, server->obj_managers); while (g_hash_table_iter_next (&iter, (gpointer) &manager, NULL)) { - if (g_dbus_object_manager_server_get_connection (manager) == info->connection) { + gs_unref_object GDBusConnection *connection = NULL; + + connection = g_dbus_object_manager_server_get_connection (manager); + if (connection == info->connection) { g_hash_table_iter_remove (&iter); break; } @@ -243,6 +246,7 @@ private_server_manager_destroy (GDBusObjectManagerServer *manager) g_dbus_connection_close (connection, NULL, NULL, NULL); g_dbus_object_manager_server_set_connection (manager, NULL); g_object_unref (manager); + g_object_unref (connection); } static gboolean @@ -361,7 +365,10 @@ private_server_get_connection_owner (PrivateServer *s, GDBusConnection *connecti g_hash_table_iter_init (&iter, s->obj_managers); while (g_hash_table_iter_next (&iter, (gpointer) &manager, (gpointer) &owner)) { - if (g_dbus_object_manager_server_get_connection (manager) == connection) + gs_unref_object GDBusConnection *c = NULL; + + c = g_dbus_object_manager_server_get_connection (manager); + if (c == connection) return owner; } return NULL; @@ -599,7 +606,10 @@ nm_bus_manager_get_unix_user (NMBusManager *self, /* Check if it's a private connection sender, which we fake */ for (iter = priv->private_servers; iter; iter = iter->next) { - if (private_server_get_connection_by_owner (iter->data, sender)) { + gs_unref_object GDBusConnection *connection = NULL; + + connection = private_server_get_connection_by_owner (iter->data, sender); + if (connection) { *out_uid = 0; return TRUE; }