diff --git a/recipes-qt/qt5/qtbase/0005-AddSynchoronization-qimagereader.patch b/recipes-qt/qt5/qtbase/0005-AddSynchoronization-qimagereader.patch new file mode 100644 index 0000000000..a16731a9f2 --- /dev/null +++ b/recipes-qt/qt5/qtbase/0005-AddSynchoronization-qimagereader.patch @@ -0,0 +1,37 @@ +commit e28c03cb829c229209090d7939a9aba1af1fdea9 +Author: aavit +Date: Tue Feb 19 18:11:16 2013 +0100 + + Fix reentrancy problem in image reading + + There were race conditions when accessing the plugin factory and + the image reader plugins from different threads; ref QTBUG-29281. + Added a mutex lock to avoid. + + Change-Id: Ic1a3b6cbaf5603f1bcf7025b58247a9a3f6d08a9 + Reviewed-by: Samuel Rødal + +Upstream-Status: Backport (from 5.1.0) + +diff --git a/src/gui/image/qimagereader.cpp b/src/gui/image/qimagereader.cpp +index 5eaf7bb..6847786 100644 +--- a/src/gui/image/qimagereader.cpp ++++ b/src/gui/image/qimagereader.cpp +@@ -133,6 +133,7 @@ + // factory loader + #include + #include ++#include + + // image handlers + #include +@@ -232,6 +233,9 @@ static QImageIOHandler *createReadHandlerHelper(QIODevice *device, + QByteArray suffix; + + #ifndef QT_NO_IMAGEFORMATPLUGIN ++ static QMutex mutex; ++ QMutexLocker locker(&mutex); ++ + typedef QMultiMap PluginKeyMap; + + // check if we have plugins that support the image format diff --git a/recipes-qt/qt5/qtbase_5.0.0.bb b/recipes-qt/qt5/qtbase_5.0.0.bb index 9a0d68bcbc..a2a819e742 100644 --- a/recipes-qt/qt5/qtbase_5.0.0.bb +++ b/recipes-qt/qt5/qtbase_5.0.0.bb @@ -4,6 +4,7 @@ require qt5-${PV}.inc PR = "${INC_PR}.0" SRC_URI += "file://0004-Disable-mkv8snapshot.patch" +SRC_URI += "file://0005-AddSynchoronization-qimagereader.patch" SRC_URI[md5sum] = "c29073bfc3cf6b39492a2481d982386e" SRC_URI[sha256sum] = "89bcde09b24e8139f9d1d957dcb07c5aada83d578c84279f66813f348243d500"