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