Fix crash when we can't get screensaver status

This commit is contained in:
Felipe Borges 2024-03-25 14:11:18 +01:00 committed by root
parent e2c73a0464
commit f1df8a68c5
3 changed files with 41 additions and 1 deletions

View File

@ -0,0 +1 @@
5c9249cc5e89627bd548d7cfc9f839c7524ad85f gnome-settings-daemon-40.0.1.tar.xz

View File

@ -11,7 +11,7 @@
Name: gnome-settings-daemon
Version: 40.0.1
Release: 16%{?dist}
Release: 17%{?dist}
Summary: The daemon sharing settings from GNOME to GTK+/KDE applications
License: GPLv2+
@ -72,6 +72,7 @@ Patch00002: subscription-manager-support.patch
Patch00003: im-module-setting-fix.patch
Patch00004: print-notifications-clear-in-stop.patch
Patch00005: 0001-power-Respect-the-nothing-power-button-action-for-VM.patch
Patch00006: usb-protection-dont-crash-when-screensaver-service-unavailable.patch
%description
A daemon to share settings from GNOME to other applications. It also
@ -197,6 +198,10 @@ cp %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/glib-2.0/schemas
%{_libdir}/pkgconfig/gnome-settings-daemon.pc
%changelog
* Mon Mar 25 2024 Felipe Borges <feborges@redhat.com> - 40.0.1-17
- Fix usb-protection crash when when screensaver service is unavailable
Related: RHEL-19295
* Thu Jan 18 2024 Ray Strode <rstrode@redhat.com> - 40.0.1-16
- Try to start rhsm if it's not already running
Related: RHEL-20449

View File

@ -0,0 +1,34 @@
From 466f84d2483c1187a9e5503eebbd18cdf9c15b14 Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@redhat.com>
Date: Fri, 17 Sep 2021 07:39:24 -0500
Subject: [PATCH] usb-protection: don't crash when screensaver service is
unavailable
gnome_settings_bus_get_screen_saver_proxy() can return NULL, e.g. when
D-Bus is broken. We need to handle that case.
Fixes #585
---
plugins/usb-protection/gsd-usb-protection-manager.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/plugins/usb-protection/gsd-usb-protection-manager.c b/plugins/usb-protection/gsd-usb-protection-manager.c
index 63a4e0d7..d8705316 100644
--- a/plugins/usb-protection/gsd-usb-protection-manager.c
+++ b/plugins/usb-protection/gsd-usb-protection-manager.c
@@ -951,6 +951,12 @@ usb_protection_proxy_ready (GObject *source_object,
G_CALLBACK (settings_changed_callback), manager);
manager->screensaver_proxy = gnome_settings_bus_get_screen_saver_proxy ();
+ if (!manager->screensaver_proxy) {
+ if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+ g_warning ("Failed to connect to screensaver service: %s", error->message);
+ g_clear_object (&manager->usb_protection);
+ return;
+ }
get_current_screen_saver_status (manager);
--
2.37.1