From 4a22da5123f3097fa0e3fff82a5b556b0f021f7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Fri, 1 Jun 2018 17:22:20 +0200 Subject: [PATCH 08/15] libgdm: Use auto-pointers and cleanup code --- libgdm/gdm-client.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/libgdm/gdm-client.c b/libgdm/gdm-client.c index 335a040a2..7b42b6c99 100644 --- a/libgdm/gdm-client.c +++ b/libgdm/gdm-client.c @@ -579,109 +579,106 @@ gdm_client_get_connection (GdmClient *client, get_manager (client, cancellable, (GAsyncReadyCallback) on_got_manager_for_opening_connection, task); } /** * gdm_client_open_reauthentication_channel_sync: * @client: a #GdmClient * @username: user to reauthenticate * @cancellable: a #GCancellable * @error: a #GError * * Gets a #GdmUserVerifier object that can be used to * reauthenticate an already logged in user. Free with * g_object_unref to close reauthentication channel. * * Returns: (transfer full): #GdmUserVerifier or %NULL if @username is not * already logged in. */ GdmUserVerifier * gdm_client_open_reauthentication_channel_sync (GdmClient *client, const char *username, GCancellable *cancellable, GError **error) { g_autoptr(GDBusConnection) connection = NULL; g_autoptr(GdmManager) manager = NULL; + g_autofree char *address = NULL; GdmUserVerifier *user_verifier = NULL; gboolean ret; - char *address; g_return_val_if_fail (GDM_IS_CLIENT (client), FALSE); manager = gdm_manager_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE, "org.gnome.DisplayManager", "/org/gnome/DisplayManager/Manager", cancellable, error); if (manager == NULL) { - goto out; + return NULL; } ret = gdm_manager_call_open_reauthentication_channel_sync (manager, username, &address, cancellable, error); if (!ret) { - goto out; + return NULL; } - g_debug ("GdmClient: connecting to address: %s", client->priv->address); + g_debug ("GdmClient: connecting to address: %s", address); connection = g_dbus_connection_new_for_address_sync (address, G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT, NULL, cancellable, error); if (connection == NULL) { - g_free (address); - goto out; + return NULL; } - g_free (address); user_verifier = gdm_user_verifier_proxy_new_sync (connection, G_DBUS_PROXY_FLAGS_NONE, NULL, SESSION_DBUS_PATH, cancellable, error); - out: return user_verifier; } /** * gdm_client_open_reauthentication_channel: * @client: a #GdmClient * @username: user to reauthenticate * @callback: a #GAsyncReadyCallback to call when the request is satisfied * @user_data: The data to pass to @callback * @cancellable: a #GCancellable * * Gets a #GdmUserVerifier object that can be used to * reauthenticate an already logged in user. */ void gdm_client_open_reauthentication_channel (GdmClient *client, const char *username, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { GTask *task; g_return_if_fail (GDM_IS_CLIENT (client)); task = g_task_new (G_OBJECT (client), cancellable, callback, user_data); -- 2.26.2