diff options
author | Benjamin Berg <bberg@redhat.com> | 2021-03-25 17:16:20 +0100 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2021-03-30 09:17:44 -0400 |
commit | a63ec01de0cc054d0ab83200a481bbc04e04d738 (patch) | |
tree | 7a821433a99e4ed5e868dc847af5b0aaedc38d49 /daemon | |
parent | e612cb7ea43d15c2cf848d4a7440b1e9e389fa27 (diff) | |
download | gdm-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')
-rw-r--r-- | daemon/gdm-display-factory.c | 4 |
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 |