Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-35380

Dangling pointer to moduleId passed to QQmlExtensionPlugin::initializeEngine

    XMLWordPrintable

Details

    Description

      In qqmlimport.cpp a QUrl is converted to a temporary QByteArray and its internal constData then stored in a const char*. This then points to already released memory (as the temporary QByteArray is destroyed again). The dangling pointer is passed to initializeEngine and eventually accessed in e.g. WebKitQmlPlugin::initializeEngine inside the Q_ASSERT.

      Thus, when you compiled WebKit with assertions enabled, you get random startup assertions as the const char* pointer is dangling and thus its contents are undefined.

      Here's a valgrind log from a current build of Qt 5's dev branches:

      ==6474== Invalid read of size 1
      ==6474== at 0x4C2ABB2: strlen (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==6474== by 0x15969274: QLatin1String::QLatin1String(char const*) (in /ssd/milian/projects/compiled/qt5/qml/QtWebKit/libqmlwebkitplugin.so)
      ==6474== by 0x1596968C: WebKitQmlPlugin::initializeEngine(QQmlEngine*, char const*) (plugin.cpp:47)
      ==6474== by 0x5124F7D: QQmlDataLoaderThread::initializeEngineMain(QQmlExtensionInterface*, char const*) (qqmltypeloader.cpp:842)
      ==6474== by 0x5132C9F: void QQmlThread::callMethodInMain<QQmlExtensionInterface*, char const*, QQmlExtensionInterface*, char const*, QQmlDataLoaderThread>(void (QQmlDataLoaderThread::)(QQmlExtensionInterface, char const*), QQmlExtensionInterface* const&, char const* const&)::I::call(QQmlThread*) (qqmlthread_p.h:221)
      ==6474== by 0x51AEE46: QQmlThread::internalCallMethodInThread(QQmlThread::Message*) (qqmlthread.cpp:305)
      ==6474== by 0x51324E5: void QQmlThread::callMethodInThread<QQmlDataBlob*, QQmlDataBlob*, QQmlDataLoaderThread>(void (QQmlDataLoaderThread::)(QQmlDataBlob), QQmlDataBlob* const&) (qqmlthread_p.h:163)
      ==6474== by 0x5124AFA: QQmlDataLoaderThread::load(QQmlDataBlob*) (qqmltypeloader.cpp:759)
      ==6474== by 0x5125166: QQmlDataLoader::load(QQmlDataBlob*, QQmlDataLoader::Mode) (qqmltypeloader.cpp:922)
      ==6474== by 0x51280F2: QQmlTypeLoader::getType(QUrl const&, QQmlDataLoader::Mode) (qqmltypeloader.cpp:1539)
      ==6474== by 0x50D5145: QQmlComponentPrivate::loadUrl(QUrl const&, QQmlComponent::CompilationMode) (qqmlcomponent.cpp:700)
      ==6474== by 0x50D490E: QQmlComponent::QQmlComponent(QQmlEngine*, QUrl const&, QObject*) (qqmlcomponent.cpp:540)
      ==6474== by 0x7A81E27: QQuickViewPrivate::execute() (qquickview.cpp:104)
      ==6474== by 0x7A82265: QQuickView::setSource(QUrl const&) (qquickview.cpp:235)
      ==6474== by 0x402CCE1: quick_test_main(int, char*, char const, char const*) (quicktest.cpp:346)
      ==6474== by 0x40077A: main (qml.cpp:36)
      ==6474== Address 0x156594d8 is 24 bytes inside a block of size 64 free'd
      ==6474== at 0x4C289DC: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==6474== by 0x62714DB: QArrayData::deallocate(QArrayData*, unsigned long, unsigned long) (qarraydata.cpp:125)
      ==6474== by 0x4ED1415: QTypedArrayData<char>::deallocate(QArrayData*) (qarraydata.h:230)
      ==6474== by 0x4ED09F0: QByteArray::~QByteArray() (in /ssd/milian/projects/compiled/qt5/lib/libQt5Qml.so.5.3.0)
      ==6474== by 0x517F096: QQmlImportDatabase::importPlugin(QString const&, QString const&, QString const&, QList<QQmlError>*) (qqmlimport.cpp:1969)
      ==6474== by 0x517844F: QQmlImportsPrivate::importExtension(QString const&, QString const&, int, int, QQmlImportDatabase*, QQmlTypeLoader::QmldirContent const*, QList<QQmlError>*) (qqmlimport.cpp:909)
      ==6474== by 0x517AC9B: QQmlImportsPrivate::addLibraryImport(QString const&, QString const&, int, int, QString const&, QString const&, bool, QQmlImportDatabase*, QList<QQmlError>*) (qqmlimport.cpp:1254)
      ==6474== by 0x517C92A: QQmlImports::addLibraryImport(QQmlImportDatabase*, QString const&, QString const&, int, int, QString const&, QString const&, bool, QList<QQmlError>*) (qqmlimport.cpp:1508)
      ==6474== by 0x5126C9C: QQmlTypeLoader::Blob::addImport(QQmlScript::Import const&, QList<QQmlError>*) (qqmltypeloader.cpp:1266)
      ==6474== by 0x512C40A: QQmlTypeData::dataReceived(QQmlDataBlob::Data const&) (qqmltypeloader.cpp:2222)
      ==6474== by 0x5126185: QQmlDataLoader::setData(QQmlDataBlob*, QQmlDataBlob::Data const&) (qqmltypeloader.cpp:1155)
      ==6474== by 0x5126105: QQmlDataLoader::setData(QQmlDataBlob*, QQmlFile*) (qqmltypeloader.cpp:1147)
      ==6474== by 0x51258E3: QQmlDataLoader::loadThread(QQmlDataBlob*) (qqmltypeloader.cpp:1025)
      ==6474== by 0x512512C: QQmlDataLoader::load(QQmlDataBlob*, QQmlDataLoader::Mode) (qqmltypeloader.cpp:918)
      ==6474== by 0x51280F2: QQmlTypeLoader::getType(QUrl const&, QQmlDataLoader::Mode) (qqmltypeloader.cpp:1539)
      ==6474== by 0x512E7D3: QQmlTypeData::resolveTypes() (qqmltypeloader.cpp:2553)
      ==6474== by 0x512CCDA: QQmlTypeData::allDependenciesDone() (qqmltypeloader.cpp:2284)
      ==6474== by 0x51261D2: QQmlDataLoader::setData(QQmlDataBlob*, QQmlDataBlob::Data const&) (qqmltypeloader.cpp:1158)
      ==6474== by 0x5126105: QQmlDataLoader::setData(QQmlDataBlob*, QQmlFile*) (qqmltypeloader.cpp:1147)
      ==6474== by 0x51258E3: QQmlDataLoader::loadThread(QQmlDataBlob*) (qqmltypeloader.cpp:1025)
      ==6474== by 0x5124DEC: QQmlDataLoaderThread::loadThread(QQmlDataBlob*) (qqmltypeloader.cpp:808)
      ==6474== by 0x513248A: void QQmlThread::callMethodInThread<QQmlDataBlob*, QQmlDataBlob*, QQmlDataLoaderThread>(void (QQmlDataLoaderThread::)(QQmlDataBlob), QQmlDataBlob* const&)::I::call(QQmlThread*) (qqmlthread_p.h:160)
      ==6474== by 0x51AE992: QQmlThreadPrivate::threadEvent() (qqmlthread.cpp:195)
      ==6474== by 0x51AE733: QQmlThreadPrivate::event(QEvent*) (qqmlthread.cpp:135)
      ==6474== by 0x64891B3: QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) (qcoreapplication.cpp:1008)
      ==6474== by 0x6488E75: QCoreApplication::notify(QObject*, QEvent*) (qcoreapplication.cpp:953)
      ==6474== by 0x5CE78A3: QGuiApplication::notify(QObject*, QEvent*) (qguiapplication.cpp:1357)
      ==6474== by 0x6488D7D: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:891)
      ==6474== by 0x648CA48: QCoreApplication::sendEvent(QObject*, QEvent*) (in /ssd/milian/projects/compiled/qt5/lib/libQt5Core.so.5.3.0)
      ==6474== by 0x648A0C6: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.cpp:1495)
      ==6474== by 0x6489A76: QCoreApplication::sendPostedEvents(QObject*, int) (qcoreapplication.cpp:1353)
      ==6474== by 0x650001A: postEventSourceDispatch(_GSource*, int (void*), void*) (qeventdispatcher_glib.cpp:279)
      ==6474== by 0x815C295: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.3800.2)
      ==6474== by 0x815C5E7: ??? (in /usr/lib/libglib-2.0.so.0.3800.2)
      ==6474== by 0x815C68B: g_main_context_iteration (in /usr/lib/libglib-2.0.so.0.3800.2)
      ==6474== by 0x65007DA: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:428)
      ==6474== by 0x6485AF9: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:136)
      ==6474== by 0x6485DDC: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:212)
      ==6474== by 0x6268465: QThread::exec() (qthread.cpp:511)
      ==6474== by 0x51AE7A4: QQmlThreadPrivate::run() (qqmlthread.cpp:148)
      ==6474== by 0x626F93A: QThreadPrivate::start(void*) (qthread_unix.cpp:345)
      ==6474== by 0x6A100A1: start_thread (in /usr/lib/libpthread-2.18.so)
      ==6474== by 0x752849C: clone (in /usr/lib/libc-2.18.so)
      ==6474==
      ==6474== Invalid read of size 1
      ==6474== at 0x4C2ABC4: strlen (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==6474== by 0x15969274: QLatin1String::QLatin1String(char const*) (in /ssd/milian/projects/compiled/qt5/qml/QtWebKit/libqmlwebkitplugin.so)
      ==6474== by 0x1596968C: WebKitQmlPlugin::initializeEngine(QQmlEngine*, char const*) (plugin.cpp:47)
      ==6474== by 0x5124F7D: QQmlDataLoaderThread::initializeEngineMain(QQmlExtensionInterface*, char const*) (qqmltypeloader.cpp:842)
      ==6474== by 0x5132C9F: void QQmlThread::callMethodInMain<QQmlExtensionInterface*, char const*, QQmlExtensionInterface*, char const*, QQmlDataLoaderThread>(void (QQmlDataLoaderThread::)(QQmlExtensionInterface, char const*), QQmlExtensionInterface* const&, char const* const&)::I::call(QQmlThread*) (qqmlthread_p.h:221)
      ==6474== by 0x51AEE46: QQmlThread::internalCallMethodInThread(QQmlThread::Message*) (qqmlthread.cpp:305)
      ==6474== by 0x51324E5: void QQmlThread::callMethodInThread<QQmlDataBlob*, QQmlDataBlob*, QQmlDataLoaderThread>(void (QQmlDataLoaderThread::)(QQmlDataBlob), QQmlDataBlob* const&) (qqmlthread_p.h:163)
      ==6474== by 0x5124AFA: QQmlDataLoaderThread::load(QQmlDataBlob*) (qqmltypeloader.cpp:759)
      ==6474== by 0x5125166: QQmlDataLoader::load(QQmlDataBlob*, QQmlDataLoader::Mode) (qqmltypeloader.cpp:922)
      ==6474== by 0x51280F2: QQmlTypeLoader::getType(QUrl const&, QQmlDataLoader::Mode) (qqmltypeloader.cpp:1539)
      ==6474== by 0x50D5145: QQmlComponentPrivate::loadUrl(QUrl const&, QQmlComponent::CompilationMode) (qqmlcomponent.cpp:700)
      ==6474== by 0x50D490E: QQmlComponent::QQmlComponent(QQmlEngine*, QUrl const&, QObject*) (qqmlcomponent.cpp:540)
      ==6474== by 0x7A81E27: QQuickViewPrivate::execute() (qquickview.cpp:104)
      ==6474== by 0x7A82265: QQuickView::setSource(QUrl const&) (qquickview.cpp:235)
      ==6474== by 0x402CCE1: quick_test_main(int, char*, char const, char const*) (quicktest.cpp:346)
      ==6474== by 0x40077A: main (qml.cpp:36)
      ==6474== Address 0x156594d9 is 25 bytes inside a block of size 64 free'd
      ==6474== at 0x4C289DC: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==6474== by 0x62714DB: QArrayData::deallocate(QArrayData*, unsigned long, unsigned long) (qarraydata.cpp:125)
      ==6474== by 0x4ED1415: QTypedArrayData<char>::deallocate(QArrayData*) (qarraydata.h:230)
      ==6474== by 0x4ED09F0: QByteArray::~QByteArray() (in /ssd/milian/projects/compiled/qt5/lib/libQt5Qml.so.5.3.0)
      ==6474== by 0x517F096: QQmlImportDatabase::importPlugin(QString const&, QString const&, QString const&, QList<QQmlError>*) (qqmlimport.cpp:1969)
      ==6474== by 0x517844F: QQmlImportsPrivate::importExtension(QString const&, QString const&, int, int, QQmlImportDatabase*, QQmlTypeLoader::QmldirContent const*, QList<QQmlError>*) (qqmlimport.cpp:909)
      ==6474== by 0x517AC9B: QQmlImportsPrivate::addLibraryImport(QString const&, QString const&, int, int, QString const&, QString const&, bool, QQmlImportDatabase*, QList<QQmlError>*) (qqmlimport.cpp:1254)
      ==6474== by 0x517C92A: QQmlImports::addLibraryImport(QQmlImportDatabase*, QString const&, QString const&, int, int, QString const&, QString const&, bool, QList<QQmlError>*) (qqmlimport.cpp:1508)
      ==6474== by 0x5126C9C: QQmlTypeLoader::Blob::addImport(QQmlScript::Import const&, QList<QQmlError>*) (qqmltypeloader.cpp:1266)
      ==6474== by 0x512C40A: QQmlTypeData::dataReceived(QQmlDataBlob::Data const&) (qqmltypeloader.cpp:2222)
      ==6474== by 0x5126185: QQmlDataLoader::setData(QQmlDataBlob*, QQmlDataBlob::Data const&) (qqmltypeloader.cpp:1155)
      ==6474== by 0x5126105: QQmlDataLoader::setData(QQmlDataBlob*, QQmlFile*) (qqmltypeloader.cpp:1147)
      ==6474== by 0x51258E3: QQmlDataLoader::loadThread(QQmlDataBlob*) (qqmltypeloader.cpp:1025)
      ==6474== by 0x512512C: QQmlDataLoader::load(QQmlDataBlob*, QQmlDataLoader::Mode) (qqmltypeloader.cpp:918)
      ==6474== by 0x51280F2: QQmlTypeLoader::getType(QUrl const&, QQmlDataLoader::Mode) (qqmltypeloader.cpp:1539)
      ==6474== by 0x512E7D3: QQmlTypeData::resolveTypes() (qqmltypeloader.cpp:2553)
      ==6474== by 0x512CCDA: QQmlTypeData::allDependenciesDone() (qqmltypeloader.cpp:2284)
      ==6474== by 0x51261D2: QQmlDataLoader::setData(QQmlDataBlob*, QQmlDataBlob::Data const&) (qqmltypeloader.cpp:1158)
      ==6474== by 0x5126105: QQmlDataLoader::setData(QQmlDataBlob*, QQmlFile*) (qqmltypeloader.cpp:1147)
      ==6474== by 0x51258E3: QQmlDataLoader::loadThread(QQmlDataBlob*) (qqmltypeloader.cpp:1025)
      ==6474== by 0x5124DEC: QQmlDataLoaderThread::loadThread(QQmlDataBlob*) (qqmltypeloader.cpp:808)
      ==6474== by 0x513248A: void QQmlThread::callMethodInThread<QQmlDataBlob*, QQmlDataBlob*, QQmlDataLoaderThread>(void (QQmlDataLoaderThread::)(QQmlDataBlob), QQmlDataBlob* const&)::I::call(QQmlThread*) (qqmlthread_p.h:160)
      ==6474== by 0x51AE992: QQmlThreadPrivate::threadEvent() (qqmlthread.cpp:195)
      ==6474== by 0x51AE733: QQmlThreadPrivate::event(QEvent*) (qqmlthread.cpp:135)
      ==6474== by 0x64891B3: QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) (qcoreapplication.cpp:1008)
      ==6474== by 0x6488E75: QCoreApplication::notify(QObject*, QEvent*) (qcoreapplication.cpp:953)
      ==6474== by 0x5CE78A3: QGuiApplication::notify(QObject*, QEvent*) (qguiapplication.cpp:1357)
      ==6474== by 0x6488D7D: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:891)
      ==6474== by 0x648CA48: QCoreApplication::sendEvent(QObject*, QEvent*) (in /ssd/milian/projects/compiled/qt5/lib/libQt5Core.so.5.3.0)
      ==6474== by 0x648A0C6: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.cpp:1495)
      ==6474== by 0x6489A76: QCoreApplication::sendPostedEvents(QObject*, int) (qcoreapplication.cpp:1353)
      ==6474== by 0x650001A: postEventSourceDispatch(_GSource*, int (void*), void*) (qeventdispatcher_glib.cpp:279)
      ==6474== by 0x815C295: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.3800.2)
      ==6474== by 0x815C5E7: ??? (in /usr/lib/libglib-2.0.so.0.3800.2)
      ==6474== by 0x815C68B: g_main_context_iteration (in /usr/lib/libglib-2.0.so.0.3800.2)
      ==6474== by 0x65007DA: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:428)
      ==6474== by 0x6485AF9: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:136)
      ==6474== by 0x6485DDC: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:212)
      ==6474== by 0x6268465: QThread::exec() (qthread.cpp:511)
      ==6474== by 0x51AE7A4: QQmlThreadPrivate::run() (qqmlthread.cpp:148)
      ==6474== by 0x626F93A: QThreadPrivate::start(void*) (qthread_unix.cpp:345)
      ==6474== by 0x6A100A1: start_thread (in /usr/lib/libpthread-2.18.so)
      ==6474== by 0x752849C: clone (in /usr/lib/libc-2.18.so)
      ==6474==
      ==6474== Invalid read of size 1
      ==6474== at 0x4C2CAA9: bcmp (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==6474== by 0x15969428: operator==(QLatin1String, QLatin1String) (in /ssd/milian/projects/compiled/qt5/qml/QtWebKit/libqmlwebkitplugin.so)
      ==6474== by 0x159696A4: WebKitQmlPlugin::initializeEngine(QQmlEngine*, char const*) (plugin.cpp:47)
      ==6474== by 0x5124F7D: QQmlDataLoaderThread::initializeEngineMain(QQmlExtensionInterface*, char const*) (qqmltypeloader.cpp:842)
      ==6474== by 0x5132C9F: void QQmlThread::callMethodInMain<QQmlExtensionInterface*, char const*, QQmlExtensionInterface*, char const*, QQmlDataLoaderThread>(void (QQmlDataLoaderThread::)(QQmlExtensionInterface, char const*), QQmlExtensionInterface* const&, char const* const&)::I::call(QQmlThread*) (qqmlthread_p.h:221)
      ==6474== by 0x51AEE46: QQmlThread::internalCallMethodInThread(QQmlThread::Message*) (qqmlthread.cpp:305)
      ==6474== by 0x51324E5: void QQmlThread::callMethodInThread<QQmlDataBlob*, QQmlDataBlob*, QQmlDataLoaderThread>(void (QQmlDataLoaderThread::)(QQmlDataBlob), QQmlDataBlob* const&) (qqmlthread_p.h:163)
      ==6474== by 0x5124AFA: QQmlDataLoaderThread::load(QQmlDataBlob*) (qqmltypeloader.cpp:759)
      ==6474== by 0x5125166: QQmlDataLoader::load(QQmlDataBlob*, QQmlDataLoader::Mode) (qqmltypeloader.cpp:922)
      ==6474== by 0x51280F2: QQmlTypeLoader::getType(QUrl const&, QQmlDataLoader::Mode) (qqmltypeloader.cpp:1539)
      ==6474== by 0x50D5145: QQmlComponentPrivate::loadUrl(QUrl const&, QQmlComponent::CompilationMode) (qqmlcomponent.cpp:700)
      ==6474== by 0x50D490E: QQmlComponent::QQmlComponent(QQmlEngine*, QUrl const&, QObject*) (qqmlcomponent.cpp:540)
      ==6474== by 0x7A81E27: QQuickViewPrivate::execute() (qquickview.cpp:104)
      ==6474== by 0x7A82265: QQuickView::setSource(QUrl const&) (qquickview.cpp:235)
      ==6474== by 0x402CCE1: quick_test_main(int, char*, char const, char const*) (quicktest.cpp:346)
      ==6474== by 0x40077A: main (qml.cpp:36)
      ==6474== Address 0x156594d8 is 24 bytes inside a block of size 64 free'd
      ==6474== at 0x4C289DC: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==6474== by 0x62714DB: QArrayData::deallocate(QArrayData*, unsigned long, unsigned long) (qarraydata.cpp:125)
      ==6474== by 0x4ED1415: QTypedArrayData<char>::deallocate(QArrayData*) (qarraydata.h:230)
      ==6474== by 0x4ED09F0: QByteArray::~QByteArray() (in /ssd/milian/projects/compiled/qt5/lib/libQt5Qml.so.5.3.0)
      ==6474== by 0x517F096: QQmlImportDatabase::importPlugin(QString const&, QString const&, QString const&, QList<QQmlError>*) (qqmlimport.cpp:1969)
      ==6474== by 0x517844F: QQmlImportsPrivate::importExtension(QString const&, QString const&, int, int, QQmlImportDatabase*, QQmlTypeLoader::QmldirContent const*, QList<QQmlError>*) (qqmlimport.cpp:909)
      ==6474== by 0x517AC9B: QQmlImportsPrivate::addLibraryImport(QString const&, QString const&, int, int, QString const&, QString const&, bool, QQmlImportDatabase*, QList<QQmlError>*) (qqmlimport.cpp:1254)
      ==6474== by 0x517C92A: QQmlImports::addLibraryImport(QQmlImportDatabase*, QString const&, QString const&, int, int, QString const&, QString const&, bool, QList<QQmlError>*) (qqmlimport.cpp:1508)
      ==6474== by 0x5126C9C: QQmlTypeLoader::Blob::addImport(QQmlScript::Import const&, QList<QQmlError>*) (qqmltypeloader.cpp:1266)
      ==6474== by 0x512C40A: QQmlTypeData::dataReceived(QQmlDataBlob::Data const&) (qqmltypeloader.cpp:2222)
      ==6474== by 0x5126185: QQmlDataLoader::setData(QQmlDataBlob*, QQmlDataBlob::Data const&) (qqmltypeloader.cpp:1155)
      ==6474== by 0x5126105: QQmlDataLoader::setData(QQmlDataBlob*, QQmlFile*) (qqmltypeloader.cpp:1147)
      ==6474== by 0x51258E3: QQmlDataLoader::loadThread(QQmlDataBlob*) (qqmltypeloader.cpp:1025)
      ==6474== by 0x512512C: QQmlDataLoader::load(QQmlDataBlob*, QQmlDataLoader::Mode) (qqmltypeloader.cpp:918)
      ==6474== by 0x51280F2: QQmlTypeLoader::getType(QUrl const&, QQmlDataLoader::Mode) (qqmltypeloader.cpp:1539)
      ==6474== by 0x512E7D3: QQmlTypeData::resolveTypes() (qqmltypeloader.cpp:2553)
      ==6474== by 0x512CCDA: QQmlTypeData::allDependenciesDone() (qqmltypeloader.cpp:2284)
      ==6474== by 0x51261D2: QQmlDataLoader::setData(QQmlDataBlob*, QQmlDataBlob::Data const&) (qqmltypeloader.cpp:1158)
      ==6474== by 0x5126105: QQmlDataLoader::setData(QQmlDataBlob*, QQmlFile*) (qqmltypeloader.cpp:1147)
      ==6474== by 0x51258E3: QQmlDataLoader::loadThread(QQmlDataBlob*) (qqmltypeloader.cpp:1025)
      ==6474== by 0x5124DEC: QQmlDataLoaderThread::loadThread(QQmlDataBlob*) (qqmltypeloader.cpp:808)
      ==6474== by 0x513248A: void QQmlThread::callMethodInThread<QQmlDataBlob*, QQmlDataBlob*, QQmlDataLoaderThread>(void (QQmlDataLoaderThread::)(QQmlDataBlob), QQmlDataBlob* const&)::I::call(QQmlThread*) (qqmlthread_p.h:160)
      ==6474== by 0x51AE992: QQmlThreadPrivate::threadEvent() (qqmlthread.cpp:195)
      ==6474== by 0x51AE733: QQmlThreadPrivate::event(QEvent*) (qqmlthread.cpp:135)
      ==6474== by 0x64891B3: QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) (qcoreapplication.cpp:1008)
      ==6474== by 0x6488E75: QCoreApplication::notify(QObject*, QEvent*) (qcoreapplication.cpp:953)
      ==6474== by 0x5CE78A3: QGuiApplication::notify(QObject*, QEvent*) (qguiapplication.cpp:1357)
      ==6474== by 0x6488D7D: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:891)
      ==6474== by 0x648CA48: QCoreApplication::sendEvent(QObject*, QEvent*) (in /ssd/milian/projects/compiled/qt5/lib/libQt5Core.so.5.3.0)
      ==6474== by 0x648A0C6: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.cpp:1495)
      ==6474== by 0x6489A76: QCoreApplication::sendPostedEvents(QObject*, int) (qcoreapplication.cpp:1353)
      ==6474== by 0x650001A: postEventSourceDispatch(_GSource*, int (void*), void*) (qeventdispatcher_glib.cpp:279)
      ==6474== by 0x815C295: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.3800.2)
      ==6474== by 0x815C5E7: ??? (in /usr/lib/libglib-2.0.so.0.3800.2)
      ==6474== by 0x815C68B: g_main_context_iteration (in /usr/lib/libglib-2.0.so.0.3800.2)
      ==6474== by 0x65007DA: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:428)
      ==6474== by 0x6485AF9: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:136)
      ==6474== by 0x6485DDC: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:212)
      ==6474== by 0x6268465: QThread::exec() (qthread.cpp:511)
      ==6474== by 0x51AE7A4: QQmlThreadPrivate::run() (qqmlthread.cpp:148)
      ==6474== by 0x626F93A: QThreadPrivate::start(void*) (qthread_unix.cpp:345)
      ==6474== by 0x6A100A1: start_thread (in /usr/lib/libpthread-2.18.so)
      ==6474== by 0x752849C: clone (in /usr/lib/libc-2.18.so)
      ==6474==
      ==6474== Invalid read of size 1
      ==6474== at 0x4C2CAC0: bcmp (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==6474== by 0x15969428: operator==(QLatin1String, QLatin1String) (in /ssd/milian/projects/compiled/qt5/qml/QtWebKit/libqmlwebkitplugin.so)
      ==6474== by 0x159696A4: WebKitQmlPlugin::initializeEngine(QQmlEngine*, char const*) (plugin.cpp:47)
      ==6474== by 0x5124F7D: QQmlDataLoaderThread::initializeEngineMain(QQmlExtensionInterface*, char const*) (qqmltypeloader.cpp:842)
      ==6474== by 0x5132C9F: void QQmlThread::callMethodInMain<QQmlExtensionInterface*, char const*, QQmlExtensionInterface*, char const*, QQmlDataLoaderThread>(void (QQmlDataLoaderThread::)(QQmlExtensionInterface, char const*), QQmlExtensionInterface* const&, char const* const&)::I::call(QQmlThread*) (qqmlthread_p.h:221)
      ==6474== by 0x51AEE46: QQmlThread::internalCallMethodInThread(QQmlThread::Message*) (qqmlthread.cpp:305)
      ==6474== by 0x51324E5: void QQmlThread::callMethodInThread<QQmlDataBlob*, QQmlDataBlob*, QQmlDataLoaderThread>(void (QQmlDataLoaderThread::)(QQmlDataBlob), QQmlDataBlob* const&) (qqmlthread_p.h:163)
      ==6474== by 0x5124AFA: QQmlDataLoaderThread::load(QQmlDataBlob*) (qqmltypeloader.cpp:759)
      ==6474== by 0x5125166: QQmlDataLoader::load(QQmlDataBlob*, QQmlDataLoader::Mode) (qqmltypeloader.cpp:922)
      ==6474== by 0x51280F2: QQmlTypeLoader::getType(QUrl const&, QQmlDataLoader::Mode) (qqmltypeloader.cpp:1539)
      ==6474== by 0x50D5145: QQmlComponentPrivate::loadUrl(QUrl const&, QQmlComponent::CompilationMode) (qqmlcomponent.cpp:700)
      ==6474== by 0x50D490E: QQmlComponent::QQmlComponent(QQmlEngine*, QUrl const&, QObject*) (qqmlcomponent.cpp:540)
      ==6474== by 0x7A81E27: QQuickViewPrivate::execute() (qquickview.cpp:104)
      ==6474== by 0x7A82265: QQuickView::setSource(QUrl const&) (qquickview.cpp:235)
      ==6474== by 0x402CCE1: quick_test_main(int, char*, char const, char const*) (quicktest.cpp:346)
      ==6474== by 0x40077A: main (qml.cpp:36)
      ==6474== Address 0x156594d9 is 25 bytes inside a block of size 64 free'd
      ==6474== at 0x4C289DC: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==6474== by 0x62714DB: QArrayData::deallocate(QArrayData*, unsigned long, unsigned long) (qarraydata.cpp:125)
      ==6474== by 0x4ED1415: QTypedArrayData<char>::deallocate(QArrayData*) (qarraydata.h:230)
      ==6474== by 0x4ED09F0: QByteArray::~QByteArray() (in /ssd/milian/projects/compiled/qt5/lib/libQt5Qml.so.5.3.0)
      ==6474== by 0x517F096: QQmlImportDatabase::importPlugin(QString const&, QString const&, QString const&, QList<QQmlError>*) (qqmlimport.cpp:1969)
      ==6474== by 0x517844F: QQmlImportsPrivate::importExtension(QString const&, QString const&, int, int, QQmlImportDatabase*, QQmlTypeLoader::QmldirContent const*, QList<QQmlError>*) (qqmlimport.cpp:909)
      ==6474== by 0x517AC9B: QQmlImportsPrivate::addLibraryImport(QString const&, QString const&, int, int, QString const&, QString const&, bool, QQmlImportDatabase*, QList<QQmlError>*) (qqmlimport.cpp:1254)
      ==6474== by 0x517C92A: QQmlImports::addLibraryImport(QQmlImportDatabase*, QString const&, QString const&, int, int, QString const&, QString const&, bool, QList<QQmlError>*) (qqmlimport.cpp:1508)
      ==6474== by 0x5126C9C: QQmlTypeLoader::Blob::addImport(QQmlScript::Import const&, QList<QQmlError>*) (qqmltypeloader.cpp:1266)
      ==6474== by 0x512C40A: QQmlTypeData::dataReceived(QQmlDataBlob::Data const&) (qqmltypeloader.cpp:2222)
      ==6474== by 0x5126185: QQmlDataLoader::setData(QQmlDataBlob*, QQmlDataBlob::Data const&) (qqmltypeloader.cpp:1155)
      ==6474== by 0x5126105: QQmlDataLoader::setData(QQmlDataBlob*, QQmlFile*) (qqmltypeloader.cpp:1147)
      ==6474== by 0x51258E3: QQmlDataLoader::loadThread(QQmlDataBlob*) (qqmltypeloader.cpp:1025)
      ==6474== by 0x512512C: QQmlDataLoader::load(QQmlDataBlob*, QQmlDataLoader::Mode) (qqmltypeloader.cpp:918)
      ==6474== by 0x51280F2: QQmlTypeLoader::getType(QUrl const&, QQmlDataLoader::Mode) (qqmltypeloader.cpp:1539)
      ==6474== by 0x512E7D3: QQmlTypeData::resolveTypes() (qqmltypeloader.cpp:2553)
      ==6474== by 0x512CCDA: QQmlTypeData::allDependenciesDone() (qqmltypeloader.cpp:2284)
      ==6474== by 0x51261D2: QQmlDataLoader::setData(QQmlDataBlob*, QQmlDataBlob::Data const&) (qqmltypeloader.cpp:1158)
      ==6474== by 0x5126105: QQmlDataLoader::setData(QQmlDataBlob*, QQmlFile*) (qqmltypeloader.cpp:1147)
      ==6474== by 0x51258E3: QQmlDataLoader::loadThread(QQmlDataBlob*) (qqmltypeloader.cpp:1025)
      ==6474== by 0x5124DEC: QQmlDataLoaderThread::loadThread(QQmlDataBlob*) (qqmltypeloader.cpp:808)
      ==6474== by 0x513248A: void QQmlThread::callMethodInThread<QQmlDataBlob*, QQmlDataBlob*, QQmlDataLoaderThread>(void (QQmlDataLoaderThread::)(QQmlDataBlob), QQmlDataBlob* const&)::I::call(QQmlThread*) (qqmlthread_p.h:160)
      ==6474== by 0x51AE992: QQmlThreadPrivate::threadEvent() (qqmlthread.cpp:195)
      ==6474== by 0x51AE733: QQmlThreadPrivate::event(QEvent*) (qqmlthread.cpp:135)
      ==6474== by 0x64891B3: QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) (qcoreapplication.cpp:1008)
      ==6474== by 0x6488E75: QCoreApplication::notify(QObject*, QEvent*) (qcoreapplication.cpp:953)
      ==6474== by 0x5CE78A3: QGuiApplication::notify(QObject*, QEvent*) (qguiapplication.cpp:1357)
      ==6474== by 0x6488D7D: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:891)
      ==6474== by 0x648CA48: QCoreApplication::sendEvent(QObject*, QEvent*) (in /ssd/milian/projects/compiled/qt5/lib/libQt5Core.so.5.3.0)
      ==6474== by 0x648A0C6: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.cpp:1495)
      ==6474== by 0x6489A76: QCoreApplication::sendPostedEvents(QObject*, int) (qcoreapplication.cpp:1353)
      ==6474== by 0x650001A: postEventSourceDispatch(_GSource*, int (void*), void*) (qeventdispatcher_glib.cpp:279)
      ==6474== by 0x815C295: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.3800.2)
      ==6474== by 0x815C5E7: ??? (in /usr/lib/libglib-2.0.so.0.3800.2)
      ==6474== by 0x815C68B: g_main_context_iteration (in /usr/lib/libglib-2.0.so.0.3800.2)
      ==6474== by 0x65007DA: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:428)
      ==6474== by 0x6485AF9: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:136)
      ==6474== by 0x6485DDC: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:212)
      ==6474== by 0x6268465: QThread::exec() (qthread.cpp:511)
      ==6474== by 0x51AE7A4: QQmlThreadPrivate::run() (qqmlthread.cpp:148)
      ==6474== by 0x626F93A: QThreadPrivate::start(void*) (qthread_unix.cpp:345)
      ==6474== by 0x6A100A1: start_thread (in /usr/lib/libpthread-2.18.so)
      ==6474== by 0x752849C: clone (in /usr/lib/libc-2.18.so)

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            laknoll Lars Knoll
            milianw Milian Wolff
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes