From c383da9dc680e5e79e75b84003eca7bfa08dd991 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Mon, 19 May 2014 23:17:42 -0500 Subject: [PATCH] Forward port KDE SVN r803253 to fix potential security hole --- config.h.cmake | 1 + ksmserver/CMakeLists.txt | 2 ++ ksmserver/ConfigureChecks.cmake | 12 ++++++++++++ ksmserver/server.cpp | 10 +++++----- 4 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 ksmserver/ConfigureChecks.cmake diff --git a/config.h.cmake b/config.h.cmake index f5ebeebcc..cacb97cb2 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -182,6 +182,7 @@ // ksmserver #cmakedefine DBUS_SYSTEM_BUS "@DBUS_SYSTEM_BUS@" +#cmakedefine HAVE__ICETRANSNOLISTEN 1 // ksplashml #cmakedefine HAVE_XINERAMA 1 diff --git a/ksmserver/CMakeLists.txt b/ksmserver/CMakeLists.txt index fdd521b90..8578b01c1 100644 --- a/ksmserver/CMakeLists.txt +++ b/ksmserver/CMakeLists.txt @@ -9,6 +9,8 @@ # ################################################# +include( ConfigureChecks.cmake ) + if( NOT DBUS_SYSTEM_BUS ) set( DBUS_SYSTEM_BUS "unix:path=/var/run/dbus/system_bus_socket" CACHE INTERNAL "" FORCE ) endif() diff --git a/ksmserver/ConfigureChecks.cmake b/ksmserver/ConfigureChecks.cmake new file mode 100644 index 000000000..4f8cf7978 --- /dev/null +++ b/ksmserver/ConfigureChecks.cmake @@ -0,0 +1,12 @@ +################################################# +# +# (C) 2014 Timothy Pearson +# kb9vqf (AT) pearsoncomputing (DOT) net +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +check_library_exists( ICE _IceTransNoListen "" HAVE__ICETRANSNOLISTEN ) \ No newline at end of file diff --git a/ksmserver/server.cpp b/ksmserver/server.cpp index c63d70d76..1d98bc0a6 100644 --- a/ksmserver/server.cpp +++ b/ksmserver/server.cpp @@ -392,9 +392,9 @@ Status SetAuthentication (int count, IceListenObj *listenObjs, { KTempFile addAuthFile; addAuthFile.setAutoDelete(true); - + remAuthFile = new KTempFile; - remAuthFile->setAutoDelete(true); + remAuthFile->setAutoDelete(true); if ((addAuthFile.status() != 0) || (remAuthFile->status() != 0)) return 0; @@ -468,7 +468,7 @@ void FreeAuthenticationData(int count, IceAuthDataEntry *authDataEntries) tqWarning("[KSMServer] could not find iceauth"); return; } - + TDEProcess p; p << iceAuth << "source" << remAuthFile->name(); p.start(TDEProcess::Block); @@ -489,7 +489,7 @@ static int Xio_ErrorHandler( Display * ) server->cleanUp(); // Don't delete server!! } - + exit(0); // Don't report error, it's not our fault. } @@ -854,7 +854,7 @@ void KSMServer::storeSession() TDEConfig* config = TDEGlobal::config(); config->reparseConfiguration(); // config may have changed in the KControl module config->setGroup("General" ); - excludeApps = TQStringList::split( TQRegExp( "[,:]" ), config->readEntry( "excludeApps" ).lower()); + excludeApps = TQStringList::split( TQRegExp( "[,:]" ), config->readEntry( "excludeApps" ).lower()); config->setGroup( sessionGroup ); int count = config->readNumEntry( "count" ); for ( int i = 1; i <= count; i++ ) {