==135936==ERROR: AddressSanitizer: heap-use-after-free on address 0x503000001d60 at pc 0x5598859530bc bp 0x7ffd6c71fb30 sp 0x7ffd6c71fb20 READ of size 8 at 0x503000001d60 thread T0 #0 0x5598859530bb in bool __gnu_cxx::__ops::_Iter_equals_val::operator()::const_iterator>(QList::const_iterator) /usr/include/c++/13/bits/predefined_ops.h:270 #1 0x559885951e13 in QList::const_iterator std::__find_if::const_iterator, __gnu_cxx::__ops::_Iter_equals_val >(QList::const_iterator, QList::const_iterator, __gnu_cxx::__ops::_Iter_equals_val, std::random_access_iterator_tag) /usr/include/c++/13/bits/stl_algobase.h:2097 #2 0x5598859512ad in QList::const_iterator std::__find_if::const_iterator, __gnu_cxx::__ops::_Iter_equals_val >(QList::const_iterator, QList::const_iterator, __gnu_cxx::__ops::_Iter_equals_val) /usr/include/c++/13/bits/stl_algobase.h:2117 #3 0x559885950beb in QList::const_iterator std::find::const_iterator, MockCompositor::FractionalScale*>(QList::const_iterator, QList::const_iterator, MockCompositor::FractionalScale* const&) /usr/include/c++/13/bits/stl_algo.h:3897 #4 0x559885950634 in auto QtPrivate::sequential_erase_one, MockCompositor::FractionalScale*>(QList&, MockCompositor::FractionalScale* const&) /home/paul/dev/qt6/qtbase/src/corelib/tools/qcontainertools_impl.h:390 #5 0x55988595072e in bool QList::removeOne(MockCompositor::FractionalScale* const&) /home/paul/dev/qt6/qtbase/src/corelib/tools/qlist.h:602 #6 0x55988594f80e in operator() /home/paul/dev/qt6/qtwayland/tests/auto/client/shared/fractionalscalev1.cpp:18 #7 0x559885950145 in operator() /home/paul/dev/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:116 #8 0x5598859502f5 in call_internal, QtPrivate::List<>, void, MockCompositor::FractionalScaleManager::wp_fractional_scale_manager_v1_get_fractional_scale(QtWaylandServer::wp_fractional_scale_manager_v1::Resource*, uint32_t, wl_resource*):: >::call(MockCompositor::FractionalScaleManager::wp_fractional_scale_manager_v1_get_fractional_scale(QtWaylandServer::wp_fractional_scale_manager_v1::Resource*, uint32_t, wl_resource*)::&, void**):: > /home/paul/dev/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:65 #9 0x559885950263 in call /home/paul/dev/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:115 #10 0x559885950106 in call, void> /home/paul/dev/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:337 #11 0x5598859500bd in impl /home/paul/dev/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:547 #12 0x7bb0c4174095 in QtPrivate::QSlotObjectBase::call(QObject*, void**) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461 #13 0x7bb0c42abbbd in QMetaCallEvent::placeMetaCall(QObject*) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qobject.cpp:620 #14 0x7bb0c42ae8cb in QObject::event(QEvent*) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qobject.cpp:1419 #15 0x7bb0c4162d5b in QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1298 #16 0x7bb0c416246a in doNotify /home/paul/dev/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1225 #17 0x7bb0c4162309 in QCoreApplication::notify(QObject*, QEvent*) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1208 #18 0x7bb0c5b76864 in QGuiApplication::notify(QObject*, QEvent*) /home/paul/dev/qt6/qtbase/src/gui/kernel/qguiapplication.cpp:2058 #19 0x7bb0c41620f5 in QCoreApplication::notifyInternal2(QObject*, QEvent*) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1124 #20 0x7bb0c4163d7a in QCoreApplication::sendEvent(QObject*, QEvent*) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1568 #21 0x7bb0c41675af in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1923 #22 0x7bb0c4164fff in QCoreApplication::sendPostedEvents(QObject*, int) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1755 #23 0x7bb0c4c28ea5 in postEventSourceDispatch /home/paul/dev/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246 #24 0x7bb0c3b145b4 (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5d5b4) (BuildId: 9753724b85d60f97b5d5663181ef7f4e69a62131) #25 0x7bb0c3b73716 (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0xbc716) (BuildId: 9753724b85d60f97b5d5663181ef7f4e69a62131) #26 0x7bb0c3b13a52 in g_main_context_iteration (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5ca52) (BuildId: 9753724b85d60f97b5d5663181ef7f4e69a62131) #27 0x7bb0c4c2a4f1 in QEventDispatcherGlib::processEvents(QFlags) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:396 #28 0x7bb0c6e3597c in QPAEventDispatcherGlib::processEvents(QFlags) /home/paul/dev/qt6/qtbase/src/gui/platform/unix/qeventdispatcher_glib.cpp:87 #29 0x7bb0c419923a in QEventLoop::processEvents(QFlags) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qeventloop.cpp:103 #30 0x7bb0c419a568 in QEventLoop::exec(QFlags) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qeventloop.cpp:194 #31 0x7bb0c6a42961 in QBasicDrag::drag(QDrag*) /home/paul/dev/qt6/qtbase/src/gui/kernel/qsimpledrag.cpp:176 #32 0x7bb0c6a32433 in QDragManager::drag(QDrag*) /home/paul/dev/qt6/qtbase/src/gui/kernel/qdnd.cpp:81 #33 0x7bb0c6a339f7 in QDrag::exec(QFlags, Qt::DropAction) /home/paul/dev/qt6/qtbase/src/gui/kernel/qdrag.cpp:248 #34 0x559885bf0ed7 in DndWindow::mousePressEvent(QMouseEvent*) /home/paul/dev/qt6/qtwayland/tests/auto/client/client/tst_client.cpp:345 #35 0x7bb0c5d385ce in QWindow::event(QEvent*) /home/paul/dev/qt6/qtbase/src/gui/kernel/qwindow.cpp:2587 #36 0x7bb0c4162d5b in QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1298 #37 0x7bb0c416246a in doNotify /home/paul/dev/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1225 #38 0x7bb0c4162309 in QCoreApplication::notify(QObject*, QEvent*) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1208 #39 0x7bb0c5b76864 in QGuiApplication::notify(QObject*, QEvent*) /home/paul/dev/qt6/qtbase/src/gui/kernel/qguiapplication.cpp:2058 #40 0x7bb0c41620f5 in QCoreApplication::notifyInternal2(QObject*, QEvent*) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1124 #41 0x7bb0c4163e4c in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1582 #42 0x7bb0c5b7a4d5 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) /home/paul/dev/qt6/qtbase/src/gui/kernel/qguiapplication.cpp:2461 #43 0x7bb0c5b789d7 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) /home/paul/dev/qt6/qtbase/src/gui/kernel/qguiapplication.cpp:2188 #44 0x7bb0c5d57fe7 in QWindowSystemInterface::sendWindowSystemEvents(QFlags) /home/paul/dev/qt6/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1114 #45 0x7bb0c6e35475 in userEventSourceDispatch /home/paul/dev/qt6/qtbase/src/gui/platform/unix/qeventdispatcher_glib.cpp:38 #46 0x7bb0c3b145b4 (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5d5b4) (BuildId: 9753724b85d60f97b5d5663181ef7f4e69a62131) #47 0x7bb0c3b73716 (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0xbc716) (BuildId: 9753724b85d60f97b5d5663181ef7f4e69a62131) #48 0x7bb0c3b13a52 in g_main_context_iteration (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5ca52) (BuildId: 9753724b85d60f97b5d5663181ef7f4e69a62131) #49 0x7bb0c4c2a4f1 in QEventDispatcherGlib::processEvents(QFlags) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:396 #50 0x7bb0c6e3597c in QPAEventDispatcherGlib::processEvents(QFlags) /home/paul/dev/qt6/qtbase/src/gui/platform/unix/qeventdispatcher_glib.cpp:87 #51 0x7bb0c4163239 in QCoreApplication::processEvents(QFlags, QDeadlineTimer) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1414 #52 0x7bb0c432ae0e in QTest::qWait(std::chrono::duration >) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qtestsupport_core.cpp:127 #53 0x7bb0c432abe3 in QTest::qWait(int) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qtestsupport_core.cpp:94 #54 0x559885bd2121 in tst_WaylandClient::mouseDrag() /home/paul/dev/qt6/qtwayland/tests/auto/client/client/tst_client.cpp:463 #55 0x559885bdbaa1 in tst_WaylandClient::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/paul/dev/build/asan-qt/qtwayland/tests/auto/client/client/tst_client_autogen/include/tst_client.moc:251 #56 0x7bb0c41b7c21 in QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qmetaobject.cpp:2761 #57 0x7bb0c41b5a33 in QMetaMethod::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) /home/paul/dev/qt6/qtbase/src/corelib/kernel/qmetaobject.cpp:2600 #58 0x7bb0c86f1cfd in std::enable_if::value, bool>::type QMetaMethod::invoke(QObject*, Qt::ConnectionType, QTemplatedMetaMethodReturnArgument) const /home/paul/dev/qt6/qtbase/src/corelib/kernel/qmetaobject.h:149 #59 0x7bb0c86ec71f in std::enable_if::value, bool>::type QMetaMethod::invoke<>(QObject*, Qt::ConnectionType) const /home/paul/dev/qt6/qtbase/src/corelib/kernel/qmetaobject.h:161 #60 0x7bb0c86c6538 in invokeTestMethodIfValid /home/paul/dev/qt6/qtbase/src/testlib/qtestcase.cpp:438 #61 0x7bb0c86cbf1a in QTest::TestMethods::invokeTestOnData(int) const /home/paul/dev/qt6/qtbase/src/testlib/qtestcase.cpp:1073 #62 0x7bb0c86cde4a in QTest::TestMethods::invokeTest(int, QLatin1String, std::optional&) const /home/paul/dev/qt6/qtbase/src/testlib/qtestcase.cpp:1375 #63 0x7bb0c86d1140 in QTest::TestMethods::invokeTests(QObject*) const /home/paul/dev/qt6/qtbase/src/testlib/qtestcase.cpp:1712 #64 0x7bb0c86d29b0 in QTest::qRun() /home/paul/dev/qt6/qtbase/src/testlib/qtestcase.cpp:1936 #65 0x7bb0c86d174b in QTest::qExec(QObject*, int, char**) /home/paul/dev/qt6/qtbase/src/testlib/qtestcase.cpp:1814 #66 0x559885bdb402 in main /home/paul/dev/qt6/qtwayland/tests/auto/client/client/tst_client.cpp:608 #67 0x7bb0c342a1c9 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #68 0x7bb0c342a28a in __libc_start_main_impl ../csu/libc-start.c:360 #69 0x5598858aef24 in _start (/home/paul/dev/build/asan-qt/qtwayland/tests/auto/client/client/tst_client+0x7ef24) (BuildId: c67a867acd3e5b4b682220eb632fbda6dcfeaa40) 0x503000001d60 is located 16 bytes inside of 32-byte region [0x503000001d50,0x503000001d70) freed by thread T1 here: #0 0x7bb0c8afc778 in realloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:85 #1 0x7bb0c45fb2b0 in QArrayData::reallocateUnaligned(QArrayData*, void*, long long, long long, QArrayData::AllocationOption) /home/paul/dev/qt6/qtbase/src/corelib/tools/qarraydata.cpp:244 #2 0x559885955304 in QTypedArrayData::reallocateUnaligned(QTypedArrayData*, MockCompositor::FractionalScale**, long long, QArrayData::AllocationOption) /home/paul/dev/qt6/qtbase/src/corelib/tools/qarraydata.h:155 #3 0x559885954679 in QtPrivate::QPodArrayOps::reallocate(long long, QArrayData::AllocationOption) /home/paul/dev/qt6/qtbase/src/corelib/tools/qarraydataops.h:261 #4 0x559885953c12 in QArrayDataPointer::reallocateAndGrow(QArrayData::GrowthPosition, long long, QArrayDataPointer*) /home/paul/dev/qt6/qtbase/src/corelib/tools/qarraydatapointer.h:223 #5 0x55988595388b in QArrayDataPointer::detachAndGrow(QArrayData::GrowthPosition, long long, MockCompositor::FractionalScale* const**, QArrayDataPointer*) /home/paul/dev/qt6/qtbase/src/corelib/tools/qarraydatapointer.h:209 #6 0x559885952adf in void QtPrivate::QPodArrayOps::emplace(long long, MockCompositor::FractionalScale*&) /home/paul/dev/qt6/qtbase/src/corelib/tools/qarraydataops.h:163 #7 0x559885951a68 in MockCompositor::FractionalScale*& QList::emplaceBack(MockCompositor::FractionalScale*&) /home/paul/dev/qt6/qtbase/src/corelib/tools/qlist.h:886 #8 0x559885950f75 in QList::append(MockCompositor::FractionalScale*) /home/paul/dev/qt6/qtbase/src/corelib/tools/qlist.h:460 #9 0x559885950758 in QList::operator<<(MockCompositor::FractionalScale*) /home/paul/dev/qt6/qtbase/src/corelib/tools/qlist.h:713 #10 0x55988594fa72 in MockCompositor::FractionalScaleManager::wp_fractional_scale_manager_v1_get_fractional_scale(QtWaylandServer::wp_fractional_scale_manager_v1::Resource*, unsigned int, wl_resource*) /home/paul/dev/qt6/qtwayland/tests/auto/client/shared/fractionalscalev1.cpp:20 #11 0x559885aa85b9 in QtWaylandServer::wp_fractional_scale_manager_v1::handle_get_fractional_scale(wl_client*, wl_resource*, unsigned int, wl_resource*) /home/paul/dev/build/asan-qt/qtwayland/tests/auto/client/shared/qwayland-server-fractional-scale-v1.cpp:201 #12 0x7bb0c85fbb15 (/lib/x86_64-linux-gnu/libffi.so.8+0x7b15) (BuildId: c9149b6e99105aa4321ddd4a10ee4b90de7b7d49) previously allocated by thread T1 here: #0 0x7bb0c8afd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x7bb0c45fa886 in allocateData /home/paul/dev/qt6/qtbase/src/corelib/tools/qarraydata.cpp:139 #2 0x7bb0c45fab5a in allocateHelper /home/paul/dev/qt6/qtbase/src/corelib/tools/qarraydata.cpp:181 #3 0x7bb0c45fad2a in QArrayData::allocate(QArrayData**, long long, long long, long long, QArrayData::AllocationOption) /home/paul/dev/qt6/qtbase/src/corelib/tools/qarraydata.cpp:201 #4 0x559885955566 in QTypedArrayData::allocate(long long, QArrayData::AllocationOption) /home/paul/dev/qt6/qtbase/src/corelib/tools/qarraydata.h:141 #5 0x559885954a58 in QArrayDataPointer::allocateGrow(QArrayDataPointer const&, long long, QArrayData::GrowthPosition) /home/paul/dev/qt6/qtbase/src/corelib/tools/qarraydatapointer.h:492 #6 0x559885953c9b in QArrayDataPointer::reallocateAndGrow(QArrayData::GrowthPosition, long long, QArrayDataPointer*) /home/paul/dev/qt6/qtbase/src/corelib/tools/qarraydatapointer.h:228 #7 0x55988595388b in QArrayDataPointer::detachAndGrow(QArrayData::GrowthPosition, long long, MockCompositor::FractionalScale* const**, QArrayDataPointer*) /home/paul/dev/qt6/qtbase/src/corelib/tools/qarraydatapointer.h:209 #8 0x559885952adf in void QtPrivate::QPodArrayOps::emplace(long long, MockCompositor::FractionalScale*&) /home/paul/dev/qt6/qtbase/src/corelib/tools/qarraydataops.h:163 #9 0x559885951a68 in MockCompositor::FractionalScale*& QList::emplaceBack(MockCompositor::FractionalScale*&) /home/paul/dev/qt6/qtbase/src/corelib/tools/qlist.h:886 #10 0x559885950f75 in QList::append(MockCompositor::FractionalScale*) /home/paul/dev/qt6/qtbase/src/corelib/tools/qlist.h:460 #11 0x559885950758 in QList::operator<<(MockCompositor::FractionalScale*) /home/paul/dev/qt6/qtbase/src/corelib/tools/qlist.h:713 #12 0x55988594fa72 in MockCompositor::FractionalScaleManager::wp_fractional_scale_manager_v1_get_fractional_scale(QtWaylandServer::wp_fractional_scale_manager_v1::Resource*, unsigned int, wl_resource*) /home/paul/dev/qt6/qtwayland/tests/auto/client/shared/fractionalscalev1.cpp:20 #13 0x559885aa85b9 in QtWaylandServer::wp_fractional_scale_manager_v1::handle_get_fractional_scale(wl_client*, wl_resource*, unsigned int, wl_resource*) /home/paul/dev/build/asan-qt/qtwayland/tests/auto/client/shared/qwayland-server-fractional-scale-v1.cpp:201 #14 0x7bb0c85fbb15 (/lib/x86_64-linux-gnu/libffi.so.8+0x7b15) (BuildId: c9149b6e99105aa4321ddd4a10ee4b90de7b7d49) Thread T1 created by T0 here: #0 0x7bb0c8af51f9 in pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:245 #1 0x7bb0c38eceb0 in std::thread::_M_start_thread(std::unique_ptr >, void (*)()) (/lib/x86_64-linux-gnu/libstdc++.so.6+0xeceb0) (BuildId: ca77dae775ec87540acd7218fa990c40d1c94ab1) #2 0x5598858b4427 in thread > /usr/include/c++/13/bits/std_thread.h:164 #3 0x5598858b2695 in MockCompositor::CoreCompositor::CoreCompositor(MockCompositor::CoreCompositor::CompositorType, int) /home/paul/dev/qt6/qtwayland/tests/auto/client/shared/corecompositor.cpp:15 #4 0x559885963411 in MockCompositor::DefaultCompositor::DefaultCompositor(MockCompositor::CoreCompositor::CompositorType, int) /home/paul/dev/qt6/qtwayland/tests/auto/client/shared/mockcompositor.cpp:10 #5 0x559885965396 in MockCompositor::WlShellCompositor::WlShellCompositor(MockCompositor::CoreCompositor::CompositorType) /home/paul/dev/qt6/qtwayland/tests/auto/client/shared/mockcompositor.cpp:124 #6 0x559885beefcf in TestCompositor::TestCompositor() /home/paul/dev/qt6/qtwayland/tests/auto/client/client/tst_client.cpp:29 #7 0x559885bf11a5 in tst_WaylandClient::tst_WaylandClient() /home/paul/dev/qt6/qtwayland/tests/auto/client/client/tst_client.cpp:133 #8 0x559885bdb393 in main /home/paul/dev/qt6/qtwayland/tests/auto/client/client/tst_client.cpp:605 #9 0x7bb0c342a1c9 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #10 0x7bb0c342a28a in __libc_start_main_impl ../csu/libc-start.c:360 #11 0x5598858aef24 in _start (/home/paul/dev/build/asan-qt/qtwayland/tests/auto/client/client/tst_client+0x7ef24) (BuildId: c67a867acd3e5b4b682220eb632fbda6dcfeaa40) SUMMARY: AddressSanitizer: heap-use-after-free /usr/include/c++/13/bits/predefined_ops.h:270 in bool __gnu_cxx::__ops::_Iter_equals_val::operator()::const_iterator>(QList::const_iterator)