summaryrefslogtreecommitdiff
path: root/daemon/gdm-display-factory.c
diff options
context:
space:
mode:
authorBenjamin Berg <bberg@redhat.com>2021-03-25 17:16:20 +0100
committerRay Strode <rstrode@redhat.com>2021-03-30 09:17:44 -0400
commita63ec01de0cc054d0ab83200a481bbc04e04d738 (patch)
tree7a821433a99e4ed5e868dc847af5b0aaedc38d49 /daemon/gdm-display-factory.c
parente612cb7ea43d15c2cf848d4a7440b1e9e389fa27 (diff)
downloadgdm-a63ec01de0cc054d0ab83200a481bbc04e04d738.tar.gz
display-factory: Correctly return from idle callback
The idle callback was defined as a void function rather than returning a boolean as it should. This meant that the return value may end up being non-zero in some situations causing an infinite loop. This seems to only happen on aarch64 and possibly only with certain compiler versions. Closes: #668
Diffstat (limited to 'daemon/gdm-display-factory.c')
-rw-r--r--daemon/gdm-display-factory.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/daemon/gdm-display-factory.c b/daemon/gdm-display-factory.c
index 1214f7f5..b28d287c 100644
--- a/daemon/gdm-display-factory.c
+++ b/daemon/gdm-display-factory.c
@@ -76,7 +76,7 @@ purge_display (char *id,
}
}
-static void
+static gboolean
purge_displays (GdmDisplayFactory *factory)
{
GdmDisplayFactoryPrivate *priv;
@@ -86,6 +86,8 @@ purge_displays (GdmDisplayFactory *factory)
gdm_display_store_foreach_remove (priv->display_store,
(GdmDisplayStoreFunc)purge_display,
NULL);
+
+ return G_SOURCE_REMOVE;
}
void