summaryrefslogtreecommitdiff
path: root/libgdm
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2018-05-14 15:49:50 -0400
committerRay Strode <rstrode@redhat.com>2018-05-16 10:01:15 -0400
commitf57e11bf9a68564eedba4f0d75c122862a1ea771 (patch)
treee31c6330a3bd2fa14c7fd1e3bf5552588903c1a5 /libgdm
parent6f8498ca6ccf09877d262077becd71f26c941174 (diff)
downloadgdm-f57e11bf9a68564eedba4f0d75c122862a1ea771.tar.gz
libgdm: fix pointer/boolean task confusion
The manager fetching code in GdmClient treats its task return value as boolean, but it's actually a pointer (the manager) This commit corrects the confusion. https://bugzilla.gnome.org/show_bug.cgi?id=795940
Diffstat (limited to 'libgdm')
-rw-r--r--libgdm/gdm-client.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libgdm/gdm-client.c b/libgdm/gdm-client.c
index 61bcbd37..a4a0e283 100644
--- a/libgdm/gdm-client.c
+++ b/libgdm/gdm-client.c
@@ -390,11 +390,13 @@ on_got_manager_for_reauthentication (GdmClient *client,
GTask *task)
{
GCancellable *cancellable;
+ GdmManager *manager;
char *username;
GError *error;
error = NULL;
- if (!g_task_propagate_boolean (G_TASK (result), &error)) {
+ manager = g_task_propagate_pointer (G_TASK (result), &error);
+ if (manager == NULL) {
g_task_return_error (task, error);
g_object_unref (task);
return;
@@ -530,10 +532,12 @@ on_got_manager_for_opening_connection (GdmClient *client,
GTask *task)
{
GCancellable *cancellable;
+ GdmManager *manager;
GError *error;
error = NULL;
- if (!g_task_propagate_boolean (G_TASK (result), &error)) {
+ manager = g_task_propagate_pointer (G_TASK (result), &error);
+ if (manager == NULL) {
g_task_return_error (task, error);
g_object_unref (task);
return;