https://bugs.kde.org/show_bug.cgi?id=360405
Bug ID: 360405 Summary: Crash on exit: Related to QtHelp plugin [DocumentationView::changedProvider] Product: kdevelop Version: unspecified Platform: Other OS: Linux Status: UNCONFIRMED Severity: crash Priority: NOR Component: documentation viewer Assignee: kdevelop-bugs-n...@kde.org Reporter: kf...@kde.org ==6618==ERROR: AddressSanitizer: heap-use-after-free on address 0x6060018d2090 at pc 0x7facfcdb2b2d bp 0x7ffd8e935c30 sp 0x7ffd8e935c28 READ of size 8 at 0x6060018d2090 thread T0 #0 0x7facfcdb2b2c in DocumentationView::changedProvider(int) /home/kfunk/devel/src/kf5/kdevplatform-stable/documentation/documentationview.cpp:238:41 #1 0x7facfcdb307c in DocumentationView::emptyHistory() /home/kfunk/devel/src/kf5/kdevplatform-stable/documentation/documentationview.cpp:202:9 #2 0x7facfcddfc7d in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (DocumentationView::*)()>::call(void (DocumentationView::*)(), DocumentationView*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:501:13 #3 0x7facfcddf801 in void QtPrivate::FunctionPointer<void (DocumentationView::*)()>::call<QtPrivate::List<>, void>(void (DocumentationView::*)(), DocumentationView*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:520:13 #4 0x7facfcddef2b in QtPrivate::QSlotObject<void (DocumentationView::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:143:17 #5 0x7fad00b03e1e in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b4e1e) #6 0x7facfcde9ed6 in ProvidersModel::providersChanged() /home/kfunk/devel/build/kf5/kdevplatform-stable/documentation/moc_documentationview.cpp:281:5 #7 0x7facfcdb802a in ProvidersModel::removeProviders(QList<KDevelop::IDocumentationProvider*> const&) /home/kfunk/devel/src/kf5/kdevplatform-stable/documentation/documentationview.cpp:295:10 #8 0x7facfcdb6786 in ProvidersModel::unloaded(KDevelop::IPlugin*) /home/kfunk/devel/src/kf5/kdevplatform-stable/documentation/documentationview.cpp:302:9 #9 0x7facfcdd638c in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<KDevelop::IPlugin*>, void, void (ProvidersModel::*)(KDevelop::IPlugin*)>::call(void (ProvidersModel::*)(KDevelop::IPlugin*), ProvidersModel*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:501:14 #10 0x7facfcdd5e81 in void QtPrivate::FunctionPointer<void (ProvidersModel::*)(KDevelop::IPlugin*)>::call<QtPrivate::List<KDevelop::IPlugin*>, void>(void (ProvidersModel::*)(KDevelop::IPlugin*), ProvidersModel*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:520:13 #11 0x7facfcdd55ab in QtPrivate::QSlotObject<void (ProvidersModel::*)(KDevelop::IPlugin*), QtPrivate::List<KDevelop::IPlugin*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:143:17 #12 0x7fad00b03e1e in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b4e1e) #13 0x7fad02d34beb in KDevelop::IPluginController::unloadingPlugin(KDevelop::IPlugin*) /home/kfunk/devel/build/kf5/kdevplatform-stable/interfaces/moc_iplugincontroller.cpp:238:5 #14 0x7fad038f7990 in KDevelop::PluginController::unloadPlugin(KDevelop::IPlugin*, KDevelop::PluginController::PluginDeletion) /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/plugincontroller.cpp:424:10 #15 0x7fad038f7177 in KDevelop::PluginController::cleanup() /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/plugincontroller.cpp:321:9 #16 0x7fad039746b8 in KDevelop::Core::cleanup() /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/core.cpp:446:9 #17 0x7fad03972da0 in KDevelop::Core::shutdown() /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/core.cpp:409:9 #18 0x7fad0386ef25 in KDevelop::MainWindow::~MainWindow() /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/mainwindow.cpp:154:9 #19 0x7fad0386f1aa in KDevelop::MainWindow::~MainWindow() /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/mainwindow.cpp:151:1 #20 0x7fad0386fa73 in KDevelop::MainWindow::~MainWindow() /home/kfunk/devel/src/kf5/kdevplatform-stable/shell/mainwindow.cpp:151:1 #21 0x7fad00b04e8f in QObject::event(QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b5e8f) #22 0x7fad0140acda in QWidget::event(QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x19dcda) #23 0x7fad01520d5a in QMainWindow::event(QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x2b3d5a) #24 0x7fad02534931 in KMainWindow::event(QEvent*) /home/kfunk/devel/src/kf5/kxmlgui/src/kmainwindow.cpp:867:25 #25 0x7fad0257de59 in KXmlGuiWindow::event(QEvent*) /home/kfunk/devel/src/kf5/kxmlgui/src/kxmlguiwindow.cpp:118:29 #26 0x7fad013c805b in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x15b05b) #27 0x7fad013cd515 in QApplication::notify(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x160515) #28 0x7fad00ad55ba in QCoreApplication::notifyInternal(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2865ba) #29 0x7fad00ad79b5 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2889b5) #30 0x7fad00b2b642 (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2dc642) #31 0x7facf79f5126 in g_main_context_dispatch (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a126) #32 0x7facf79f537f (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a37f) #33 0x7facf79f542b in g_main_context_iteration (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a42b) #34 0x7fad00b2ba4e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2dca4e) #35 0x7fad00ad2d79 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x283d79) #36 0x7fad00adae1b in QCoreApplication::exec() (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x28be1b) #37 0x503869 in main /home/kfunk/devel/src/kf5/kdevelop-stable/app/main.cpp:671:12 #38 0x7facff5db9ff in __libc_start_main /build/glibc-uCRKup/glibc-2.21/csu/libc-start.c:289 #39 0x43c128 in _start (/home/kfunk/devel/install/kf5-stable/bin/kdevelop+0x43c128) 0x6060018d2090 is located 16 bytes inside of 56-byte region [0x6060018d2080,0x6060018d20b8) freed by thread T0 here: #0 0x4e2b82 in operator delete(void*) (/home/kfunk/devel/install/kf5-stable/bin/kdevelop+0x4e2b82) #1 0x7facc5a66c93 in QtHelpQtDoc::~QtHelpQtDoc() /home/kfunk/devel/build/kf5/kdevelop-stable/documentation/qthelp/../../../../../src/kf5/kdevelop-stable/documentation/qthelp/qthelpqtdoc.h:26:7 #2 0x7fad00b024fa in QObjectPrivate::deleteChildren() (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b34fa) previously allocated by thread T0 here: #0 0x4e25c2 in operator new(unsigned long) (/home/kfunk/devel/install/kf5-stable/bin/kdevelop+0x4e25c2) #1 0x7facc5a37dac in QtHelpPlugin::loadQtDocumentation(bool) /home/kfunk/devel/src/kf5/kdevelop-stable/documentation/qthelp/qthelpplugin.cpp:76:19 #2 0x7facc5a37dac in QtHelpPlugin::readConfig() /home/kfunk/devel/src/kf5/kdevelop-stable/documentation/qthelp/qthelpplugin.cpp:65 #3 0x7facc5a650e0 in QtHelpPlugin::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/kfunk/devel/build/kf5/kdevelop-stable/documentation/qthelp/moc_qthelpplugin.cpp:78:17 #4 0x7fad00b04e70 in QObject::event(QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b5e70) #5 0x7fad013c805b in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x15b05b) SUMMARY: AddressSanitizer: heap-use-after-free /home/kfunk/devel/src/kf5/kdevplatform-stable/documentation/documentationview.cpp:238 DocumentationView::changedProvider(int) Shadow bytes around the buggy address: 0x0c0c803123c0: 00 00 00 04 fa fa fa fa 00 00 00 00 00 00 00 04 0x0c0c803123d0: fa fa fa fa 00 00 00 00 00 00 00 04 fa fa fa fa 0x0c0c803123e0: fd fd fd fd fd fd fd fd fa fa fa fa fd fd fd fd 0x0c0c803123f0: fd fd fd fa fa fa fa fa fd fd fd fd fd fd fd fa 0x0c0c80312400: fa fa fa fa fd fd fd fd fd fd fd fd fa fa fa fa =>0x0c0c80312410: fd fd[fd]fd fd fd fd fa fa fa fa fa fd fd fd fd 0x0c0c80312420: fd fd fd fd fa fa fa fa fd fd fd fd fd fd fd fd 0x0c0c80312430: fa fa fa fa fd fd fd fd fd fd fd fd fa fa fa fa 0x0c0c80312440: fd fd fd fd fd fd fd fa fa fa fa fa fd fd fd fd 0x0c0c80312450: fd fd fd fa fa fa fa fa fd fd fd fd fd fd fd fd 0x0c0c80312460: fa fa fa fa fd fd fd fd fd fd fd fd fa fa fa fa Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Heap right redzone: fb Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack partial redzone: f4 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==6618==ABORTING Reproducible: Sometimes -- You are receiving this mail because: You are watching all bug changes.