From 8df599ffe5ce7eca8e2842a606329f3387c4479f Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Thu, 7 Jun 2018 02:04:26 +0200 Subject: [PATCH] Exiting immediately to work around nvidia crash --- src/core/main.cpp | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/core/main.cpp b/src/core/main.cpp index 0ea00a8c5..2aaf29f85 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -43,9 +43,13 @@ # include #endif +#ifdef Q_OS_UNIX +# include +#endif + #ifdef Q_OS_DARWIN - #include - #include +# include +# include #endif #ifdef Q_OS_WIN32 @@ -62,7 +66,7 @@ #include "qtsinglecoreapplication.h" #ifdef HAVE_DBUS - #include "mpris.h" +# include "mpris.h" #endif #include "utilities.h" #include "metatypes.h" @@ -222,5 +226,17 @@ int main(int argc, char* argv[]) { int ret = a.exec(); +#ifdef Q_OS_LINUX + QFile self_maps("/proc/self/maps"); + if (self_maps.open(QIODevice::ReadOnly)) { + QByteArray data = self_maps.readAll(); + if (data.contains("libnvidia-tls.so.")) { + qLog(Warning) << "Exiting immediately to work around NVIDIA driver bug"; + _exit(ret); + } + self_maps.close(); + } +#endif + return ret; }