<table><tr><td style="">graesslin added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D7359" rel="noreferrer">View Revision</a></tr></table><br /><div><div><p>ASAN detected a heap-use-after-free:</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">=================================================================
==10094==ERROR: AddressSanitizer: heap-use-after-free on address 0x60300003b060 at pc 0x7fa28cc7782f bp 0x7fff015a5610 sp 0x7fff015a5608
READ of size 8 at 0x60300003b060 thread T0
    #0 0x7fa28cc7782e in QScopedPointer<KWayland::Server::Global::Private, QScopedPointerDeleter<KWayland::Server::Global::Private> >::data() const /usr/include/qt5/QtCore/qscopedpointer.h:140
    #1 0x7fa28cc8bcbb in KWayland::Server::OutputInterface::d_func() const /home/jenkins/workspace/Dependency Build Plasma kf5-qt5 SUSEQt5.9/kwayland/src/server/output_interface.cpp:528
    #2 0x7fa28cc8b96a in KWayland::Server::OutputInterface::clientResources(KWayland::Server::ClientConnection*) const /home/jenkins/workspace/Dependency Build Plasma kf5-qt5 SUSEQt5.9/kwayland/src/server/output_interface.cpp:511
    #3 0x7fa28cd9a61f in KWayland::Server::SurfaceInterface::setOutputs(QVector<KWayland::Server::OutputInterface*> const&) /home/jenkins/workspace/Dependency Build Plasma kf5-qt5 SUSEQt5.9/kwayland/src/server/surface_interface.cpp:792
    #4 0x7fa299ea0c9e in KWin::ShellClient::updateClientOutputs() /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/shell_client.cpp:1540
    #5 0x7fa299eb54e4 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::ShellClient::*)()>::call(void (KWin::ShellClient::*)(), KWin::ShellClient*, void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:136
    #6 0x7fa299eb3844 in void QtPrivate::FunctionPointer<void (KWin::ShellClient::*)()>::call<QtPrivate::List<>, void>(void (KWin::ShellClient::*)(), KWin::ShellClient*, void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:169
    #7 0x7fa299eb1202 in QtPrivate::QSlotObject<void (KWin::ShellClient::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/qt5/QtCore/qobject_impl.h:120
    #8 0x7fa288d0535b in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib64/libQt5Core.so.5+0x2ac35b)
    #9 0x7fa29a048150 in KWin::Screens::changed() /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/build/kwin_autogen/EWIEGA46WW/moc_screens.cpp:262
    #10 0x7fa2999f577a in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::Screens::*)()>::call(void (KWin::Screens::*)(), KWin::Screens*, void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:136
    #11 0x7fa2999f5071 in void QtPrivate::FunctionPointer<void (KWin::Screens::*)()>::call<QtPrivate::List<>, void>(void (KWin::Screens::*)(), KWin::Screens*, void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:169
    #12 0x7fa2999f4cc8 in QtPrivate::QSlotObject<void (KWin::Screens::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/qt5/QtCore/qobject_impl.h:120
    #13 0x7fa288d05c41 in QObject::event(QEvent*) (/usr/lib64/libQt5Core.so.5+0x2acc41)
    #14 0x7fa28a17893b in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib64/libQt5Widgets.so.5+0x16193b)
    #15 0x7fa28a17fcb3 in QApplication::notify(QObject*, QEvent*) (/usr/lib64/libQt5Widgets.so.5+0x168cb3)
    #16 0x7fa288cd7d47 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (/usr/lib64/libQt5Core.so.5+0x27ed47)
    #17 0x7fa288cda334 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (/usr/lib64/libQt5Core.so.5+0x281334)
    #18 0x7fa288d2aa53 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib64/libQt5Core.so.5+0x2d1a53)
    #19 0x7fa273f4900c in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/build/plugins/qpa/KWinQpaPlugin.so+0xd900c)
    #20 0x7fa288cd6359 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib64/libQt5Core.so.5+0x27d359)
    #21 0x44c1d2 in QTestEventLoop::enterLoopMSecs(int) /usr/include/qt5/QtTest/qtesteventloop.h:105
    #22 0x44cda2 in QSignalSpy::wait(int) /usr/include/qt5/QtTest/qsignalspy.h:149
    #23 0x41fff3 in KWin::PointerInputTest::testUpdateFocusAfterScreenChange() /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/autotests/integration/pointer_input.cpp:298
    #24 0x446379 in KWin::PointerInputTest::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/build/autotests/integration/testPointerInput_autogen/include/pointer_input.moc:155
    #25 0x7fa288ce7ca5 in QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (/usr/lib64/libQt5Core.so.5+0x28eca5)
    #26 0x7fa2987c9939  (/usr/lib64/libQt5Test.so.5+0x14939)
    #27 0x7fa2987ca63f  (/usr/lib64/libQt5Test.so.5+0x1563f)
    #28 0x7fa2987cab70  (/usr/lib64/libQt5Test.so.5+0x15b70)
    #29 0x7fa2987cb12a in QTest::qExec(QObject*, int, char**) (/usr/lib64/libQt5Test.so.5+0x1612a)
    #30 0x4460a5 in main /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/autotests/integration/pointer_input.cpp:1188
    #31 0x7fa287e22469 in __libc_start_main (/lib64/libc.so.6+0x20469)
    #32 0x40fe49 in _start (/home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/build/autotests/integration/testPointerInput+0x40fe49)

0x60300003b060 is located 16 bytes inside of 24-byte region [0x60300003b050,0x60300003b068)
freed by thread T0 here:
    #0 0x7fa29b7ec970 in operator delete(void*) (/usr/lib64/libasan.so.4+0xde970)
    #1 0x7fa28cc859fb in KWayland::Server::OutputInterface::~OutputInterface() /home/jenkins/workspace/Dependency Build Plasma kf5-qt5 SUSEQt5.9/kwayland/src/server/output_interface.h:46
    #2 0x7fa299ed88b8 in void qDeleteAll<QList<KWayland::Server::OutputInterface*>::const_iterator>(QList<KWayland::Server::OutputInterface*>::const_iterator, QList<KWayland::Server::OutputInterface*>::const_iterator) /usr/include/qt5/QtCore/qalgorithms.h:320
    #3 0x7fa299ed1daf in void qDeleteAll<QList<KWayland::Server::OutputInterface*> >(QList<KWayland::Server::OutputInterface*> const&) /usr/include/qt5/QtCore/qalgorithms.h:328
    #4 0x7fa299ebd92a in operator() /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/wayland_server.cpp:371
    #5 0x7fa299eccc4e in call /usr/include/qt5/QtCore/qobjectdefs_impl.h:130
    #6 0x7fa299ecb626 in call<QtPrivate::List<>, void> /usr/include/qt5/QtCore/qobjectdefs_impl.h:240
    #7 0x7fa299ec85a8 in impl /usr/include/qt5/QtCore/qobject_impl.h:168
    #8 0x7fa288d0535b in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib64/libQt5Core.so.5+0x2ac35b)
    #9 0x7fa29a048150 in KWin::Screens::changed() /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/build/kwin_autogen/EWIEGA46WW/moc_screens.cpp:262
    #10 0x7fa2999f577a in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::Screens::*)()>::call(void (KWin::Screens::*)(), KWin::Screens*, void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:136
    #11 0x7fa2999f5071 in void QtPrivate::FunctionPointer<void (KWin::Screens::*)()>::call<QtPrivate::List<>, void>(void (KWin::Screens::*)(), KWin::Screens*, void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:169
    #12 0x7fa2999f4cc8 in QtPrivate::QSlotObject<void (KWin::Screens::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/qt5/QtCore/qobject_impl.h:120
    #13 0x7fa288d05c41 in QObject::event(QEvent*) (/usr/lib64/libQt5Core.so.5+0x2acc41)
    #14 0x7fa28a17893b in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib64/libQt5Widgets.so.5+0x16193b)

previously allocated by thread T0 here:
    #0 0x7fa29b7ebc70 in operator new(unsigned long) (/usr/lib64/libasan.so.4+0xddc70)
    #1 0x7fa28cc17b08 in KWayland::Server::Display::createOutput(QObject*) /home/jenkins/workspace/Dependency Build Plasma kf5-qt5 SUSEQt5.9/kwayland/src/server/display.cpp:209
    #2 0x7fa299ebdeb9 in KWin::WaylandServer::syncOutputsToWayland() /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/wayland_server.cpp:381
    #3 0x7fa299ebdae2 in KWin::WaylandServer::initOutputs() /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/wayland_server.cpp:362
    #4 0x7fa299ee3416 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::WaylandServer::*)()>::call(void (KWin::WaylandServer::*)(), KWin::WaylandServer*, void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:136
    #5 0x7fa299ee0bb9 in void QtPrivate::FunctionPointer<void (KWin::WaylandServer::*)()>::call<QtPrivate::List<>, void>(void (KWin::WaylandServer::*)(), KWin::WaylandServer*, void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:169
    #6 0x7fa299edb94c in QtPrivate::QSlotObject<void (KWin::WaylandServer::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/qt5/QtCore/qobject_impl.h:120
    #7 0x7fa288d0535b in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib64/libQt5Core.so.5+0x2ac35b)
    #8 0x7fa29a032d5c in KWin::Application::screensCreated() /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/build/kwin_autogen/EWIEGA46WW/moc_main.cpp:275
    #9 0x7fa2999a3574 in KWin::Application::createScreens() /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/main.cpp:301
    #10 0x4728a6 in KWin::WaylandTestApplication::continueStartupWithScreens() /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/autotests/integration/kwin_wayland_test.cpp:118
    #11 0x47df94 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::WaylandTestApplication::*)()>::call(void (KWin::WaylandTestApplication::*)(), KWin::WaylandTestApplication*, void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:136
    #12 0x47d78c in void QtPrivate::FunctionPointer<void (KWin::WaylandTestApplication::*)()>::call<QtPrivate::List<>, void>(void (KWin::WaylandTestApplication::*)(), KWin::WaylandTestApplication*, void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:169
    #13 0x47cbf8 in QtPrivate::QSlotObject<void (KWin::WaylandTestApplication::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/qt5/QtCore/qobject_impl.h:120
    #14 0x7fa288d0535b in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib64/libQt5Core.so.5+0x2ac35b)
    #15 0x7fa29a0417fa in KWin::Platform::screensQueried() /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/build/kwin_autogen/EWIEGA46WW/moc_platform.cpp:297
    #16 0x7fa273015d1d in KWin::VirtualBackend::init() /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/plugins/platforms/virtual/virtual_backend.cpp:74
    #17 0x4726b4 in KWin::WaylandTestApplication::createBackend() /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/autotests/integration/kwin_wayland_test.cpp:112
    #18 0x47228b in KWin::WaylandTestApplication::performStartup() /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/autotests/integration/kwin_wayland_test.cpp:99
    #19 0x7fa29999d7fa in KWin::Application::start() /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/main.cpp:156
    #20 0x419ec2 in KWin::PointerInputTest::initTestCase() /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/autotests/integration/pointer_input.cpp:103
    #21 0x44624d in KWin::PointerInputTest::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/jenkins/workspace/Plasma kwin kf5-qt5 SUSEQt5.9/build/autotests/integration/testPointerInput_autogen/include/pointer_input.moc:149
    #22 0x7fa288ce7ca5 in QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (/usr/lib64/libQt5Core.so.5+0x28eca5)
    #23 0x7fa2987caaf3  (/usr/lib64/libQt5Test.so.5+0x15af3)
    #24 0x7fa2987cb12a in QTest::qExec(QObject*, int, char**) (/usr/lib64/libQt5Test.so.5+0x1612a)</pre></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R108 KWin</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D7359" rel="noreferrer">https://phabricator.kde.org/D7359</a></div></div><br /><div><strong>To: </strong>davidedmundson, Plasma, graesslin<br /><strong>Cc: </strong>johanhelsing, graesslin, plasma-devel, kwin, KWin, ZrenBot, progwolff, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart, lukas<br /></div>