summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-04-03 17:51:20 +0200
committerQt Continuous Integration System <qt-info@nokia.com>2010-04-03 17:51:20 +0200
commitd6c9b45f5979d6b99b1078db38d6ae402fb4332c (patch)
tree08848e52e49acf706498a1c5031c44eb23f4998f
parent98ce026af9e1fcdc9ae68a2757d102c9093c023c (diff)
parent7f6fe4bc968763d50c4b1d61017f9a45927250e9 (diff)
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: [plugins] Don't conclude that a .debug file is a plugin.
-rw-r--r--src/corelib/plugin/qlibrary.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/corelib/plugin/qlibrary.cpp b/src/corelib/plugin/qlibrary.cpp
index a2c575a7cf..0f99948a76 100644
--- a/src/corelib/plugin/qlibrary.cpp
+++ b/src/corelib/plugin/qlibrary.cpp
@@ -620,6 +620,20 @@ bool QLibraryPrivate::isPlugin(QSettings *settings)
QByteArray key;
bool success = false;
+#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
+ if (fileName.endsWith(QLatin1String(".debug"))) {
+ // refuse to load a file that ends in .debug
+ // these are the debug symbols from the libraries
+ // the problem is that they are valid shared library files
+ // and dlopen is known to crash while opening them
+
+ // pretend we didn't see the file
+ errorString = QLibrary::tr("The shared library was not found.");
+ pluginState = IsNotAPlugin;
+ return false;
+ }
+#endif
+
QFileInfo fileinfo(fileName);
#ifndef QT_NO_DATESTRING