forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
gnome-base/gnome-settings-daemon: fix build with glib-2.58
New glib does typeof() checking on g_clear_pointer macro calls, which fails with code that passed something unsuitable as g_clear_pointer destroy parameter. notify_notification_close takes a second parameter, which is not a valid function signature for g_clear_pointer, thus it errors now. Add upstream patch to fix that. Because in practice the destroy func call worked out fine with earlier glib, without any known problems, there is no revbump by considering it only a build fix (which strictly it's not). Closes: https://bugs.gentoo.org/673706 Signed-off-by: Mart Raudsepp <[email protected]> Package-Manager: Portage-2.3.52, Repoman-2.3.11
- Loading branch information
Showing
3 changed files
with
36 additions
and
1 deletion.
There are no files selected for viewing
33 changes: 33 additions & 0 deletions
33
gnome-base/gnome-settings-daemon/files/glib-2.58-compat.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
From 3110457f72f70b2d283c1ad2f27b91b95d75d92f Mon Sep 17 00:00:00 2001 | ||
From: Christian Hergert <[email protected]> | ||
Date: Wed, 18 Jul 2018 19:31:17 -0700 | ||
Subject: [PATCH] housekeeping: fix improper notify_notification_close() usage | ||
|
||
notify_notification_close() expects that a parameter will be available for | ||
the error location, which could be a dangling pointer in a register or | ||
on the stack in the case of some architectures. | ||
|
||
This was caught by GNOME/glib#1425 which allows us to check proper type | ||
parameters. | ||
--- | ||
plugins/housekeeping/gsd-disk-space.c | 4 +++- | ||
1 file changed, 3 insertions(+), 1 deletion(-) | ||
|
||
diff --git a/plugins/housekeeping/gsd-disk-space.c b/plugins/housekeeping/gsd-disk-space.c | ||
index 0ae40193..0eee94ea 100644 | ||
--- a/plugins/housekeeping/gsd-disk-space.c | ||
+++ b/plugins/housekeeping/gsd-disk-space.c | ||
@@ -1017,7 +1017,9 @@ gsd_ldsm_clean (void) | ||
g_clear_object (&ldsm_monitor); | ||
g_clear_object (&settings); | ||
g_clear_object (&privacy_settings); | ||
- g_clear_pointer (¬ification, notify_notification_close); | ||
+ /* NotifyNotification::closed callback will drop reference */ | ||
+ if (notification != NULL) | ||
+ notify_notification_close (notification, NULL); | ||
g_slist_free_full (ignore_paths, g_free); | ||
ignore_paths = NULL; | ||
} | ||
-- | ||
2.17.0 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters