path: root/kde/patch/kscreenlocker/kscreenlocker_CVE-2016-2312.patch
diff options
Diffstat (limited to 'kde/patch/kscreenlocker/kscreenlocker_CVE-2016-2312.patch')
1 files changed, 36 insertions, 0 deletions
diff --git a/kde/patch/kscreenlocker/kscreenlocker_CVE-2016-2312.patch b/kde/patch/kscreenlocker/kscreenlocker_CVE-2016-2312.patch
new file mode 100644
index 0000000..492ef80
--- /dev/null
+++ b/kde/patch/kscreenlocker/kscreenlocker_CVE-2016-2312.patch
@@ -0,0 +1,36 @@
+From: Martin Gräßlin <>
+Date: Fri, 05 Feb 2016 09:30:19 +0000
+Subject: [greeter] Dont quit when last window closes
+[greeter] Dont quit when last window closes
+Qt allows to have no screens. If all XRandR screens are disconnected
+there are also no QScreens. This is from an X11 perspective wrong, but
+we have to deal with it. No QScreens means that all views are destroyed
+and no new ones are created. Thus all windows close and the greeter
+exited successfully which in turn unlocked the screen.
+This change ensures that the greeter doesn't exit when all windows close.
+Funnily this was not a problem with the well known issue of Qt
+crashing when all screens are disconnected. The lock screen handles
+crashes gracefully and just restarts or more likely Qt also crashes
+the application using KSld and thus taking down the complete session.
+BUG: 358125
+FIXED-IN: 5.5.5
+--- a/greeter/main.cpp
++++ b/greeter/main.cpp
+@@ -59,6 +59,7 @@
+ qputenv("QT_IM_MODULE", QByteArrayLiteral("compose"));
+ }
+ ScreenLocker::UnlockApp app(argc, argv);
++ app.setQuitOnLastWindowClosed(false);
+ QCoreApplication::setApplicationName(QStringLiteral("kscreenlocker_greet"));
+ QCoreApplication::setApplicationVersion(QStringLiteral("0.1"));
+ QCoreApplication::setOrganizationDomain(QStringLiteral(""));