parent
443dee05a6
commit
2751291c7e
48
0001-smartcard-Cancel-cancellable-when-stopping.patch
Normal file
48
0001-smartcard-Cancel-cancellable-when-stopping.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
From a1c2685bc6b255f22b6ce4645c001d428cb67907 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marek Kasik <mkasik@redhat.com>
|
||||||
|
Date: Wed, 22 May 2019 14:56:42 +0200
|
||||||
|
Subject: [PATCH] smartcard: Cancel cancellable when stopping
|
||||||
|
|
||||||
|
self->cancellable in GsdSmartcardManager is not cancelled
|
||||||
|
at gsd_smartcard_manager_stop() and hence some callbacks are
|
||||||
|
still called after unload_nss() which clears SECMODListLock
|
||||||
|
which is used by SECMOD_GetReadLock() / SECMOD_ReleaseReadLock().
|
||||||
|
|
||||||
|
This leads to crashes in NSSRWLock_LockRead_Util() and
|
||||||
|
NSSRWLock_UnlockRead_Util() probably.
|
||||||
|
|
||||||
|
Also check for return value of g_cancellable_connect().
|
||||||
|
|
||||||
|
See https://bugzilla.redhat.com/show_bug.cgi?id=1646359,
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=1688791 and
|
||||||
|
their duplicates for additional info.
|
||||||
|
---
|
||||||
|
plugins/smartcard/gsd-smartcard-manager.c | 5 ++++-
|
||||||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/smartcard/gsd-smartcard-manager.c b/plugins/smartcard/gsd-smartcard-manager.c
|
||||||
|
index 014c17be..da1e0d6d 100644
|
||||||
|
--- a/plugins/smartcard/gsd-smartcard-manager.c
|
||||||
|
+++ b/plugins/smartcard/gsd-smartcard-manager.c
|
||||||
|
@@ -190,7 +190,8 @@ watch_one_event_from_driver (GsdSmartcardManager *self,
|
||||||
|
operation,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
- card = SECMOD_WaitForAnyTokenEvent (operation->driver, 0, PR_SecondsToInterval (1));
|
||||||
|
+ if (handler_id != 0)
|
||||||
|
+ card = SECMOD_WaitForAnyTokenEvent (operation->driver, 0, PR_SecondsToInterval (1));
|
||||||
|
|
||||||
|
g_cancellable_disconnect (cancellable, handler_id);
|
||||||
|
|
||||||
|
@@ -773,6 +774,8 @@ gsd_smartcard_manager_stop (GsdSmartcardManager *self)
|
||||||
|
|
||||||
|
g_debug ("Stopping smartcard manager");
|
||||||
|
|
||||||
|
+ g_cancellable_cancel (priv->cancellable);
|
||||||
|
+
|
||||||
|
unload_nss (self);
|
||||||
|
|
||||||
|
g_clear_object (&priv->settings);
|
||||||
|
--
|
||||||
|
2.20.1
|
||||||
|
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Name: gnome-settings-daemon
|
Name: gnome-settings-daemon
|
||||||
Version: 3.32.0
|
Version: 3.32.0
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: The daemon sharing settings from GNOME to GTK+/KDE applications
|
Summary: The daemon sharing settings from GNOME to GTK+/KDE applications
|
||||||
|
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
@ -16,6 +16,8 @@ URL: https://download.gnome.org/sources/%{name}
|
|||||||
Source0: https://download.gnome.org/sources/%{name}/3.32/%{name}-%{version}.tar.xz
|
Source0: https://download.gnome.org/sources/%{name}/3.32/%{name}-%{version}.tar.xz
|
||||||
Source1: org.gnome.settings-daemon.plugins.power.gschema.override
|
Source1: org.gnome.settings-daemon.plugins.power.gschema.override
|
||||||
|
|
||||||
|
Patch0: 0001-smartcard-Cancel-cancellable-when-stopping.patch
|
||||||
|
|
||||||
BuildRequires: meson >= 0.44.0
|
BuildRequires: meson >= 0.44.0
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: cups-devel
|
BuildRequires: cups-devel
|
||||||
@ -195,6 +197,9 @@ mkdir $RPM_BUILD_ROOT%{_libdir}/gnome-settings-daemon-3.0/gtk-modules
|
|||||||
%{_libdir}/pkgconfig/gnome-settings-daemon.pc
|
%{_libdir}/pkgconfig/gnome-settings-daemon.pc
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue May 28 2019 Marek Kasik <mkasik@redhat.com> - 3.32.0-2
|
||||||
|
- Fix NSS crash at smartcard plugin (#1688791)
|
||||||
|
|
||||||
* Mon Mar 11 2019 Kalev Lember <klember@redhat.com> - 3.32.0-1
|
* Mon Mar 11 2019 Kalev Lember <klember@redhat.com> - 3.32.0-1
|
||||||
- Update to 3.32.0
|
- Update to 3.32.0
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user