autotests: Fix zero page access

Relevant output:

==18647==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000048 (pc 0x7fbe27fb2db7 bp 0x7ffdcb6d4030 sp 0x7ffdcb6d4020 T0)
==18647==The signal is caused by a READ memory access.
==18647==Hint: address points to the zero page.
    #0 0x7fbe27fb2db6 in KWin::TabBox::TabBox::isDisplayed() const /home/jenkins/workspace/Plasma/kwin/kf5-qt5 SUSEQt5.12/tabbox/tabbox.h:231
    #1 0x7fbe286dbb85 in KWin::ShellClient::destroyClient() /home/jenkins/workspace/Plasma/kwin/kf5-qt5 SUSEQt5.12/shell_client.cpp:421
    #2 0x7fbe2871f6a2 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:152
    #3 0x7fbe2871d43f in void QtPrivate::FunctionPointer<void (KWin::ShellClient::*)()>::call<QtPrivate::List<>, void>(void (KWin::ShellClient::*)(), KWin::ShellClient*, void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
    #4 0x7fbe28719d65 in QtPrivate::QSlotObject<void (KWin::ShellClient::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (/home/jenkins/install-prefix/lib64/libkwin.so.5+0x1677d65)
    #5 0x7fbe1d7cc357 in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib64/libQt5Core.so.5+0x2b3357)
    #6 0x7fbe1fd86970 in KWayland::Server::Resource::unbound() /home/jenkins/workspace/Administration/Dependency Build Plasma kf5-qt5 SUSEQt5.12/kwayland/build/src/server/KF5WaylandServer_autogen/EWIEGA46WW/moc_resource.cpp:142
    #7 0x7fbe1ff104b4 in KWayland::Server::Resource::Private::unbind(wl_resource*) /home/jenkins/workspace/Administration/Dependency Build Plasma kf5-qt5 SUSEQt5.12/kwayland/src/server/resource.cpp:68
    #8 0x7fbe194812ae  (/usr/lib64/libwayland-server.so.0+0x92ae)
    #9 0x7fbe1948132f in wl_resource_destroy (/usr/lib64/libwayland-server.so.0+0x932f)
    #10 0x7fbe1ff1053f in KWayland::Server::Resource::Private::resourceDestroyedCallback(wl_client*, wl_resource*) /home/jenkins/workspace/Administration/Dependency Build Plasma kf5-qt5 SUSEQt5.12/kwayland/src/server/resource.cpp:76
    #11 0x7fbe17d26d8c  (/usr/lib64/libffi.so.7+0x6d8c)
    #12 0x7fbe17d26179  (/usr/lib64/libffi.so.7+0x6179)
    #13 0x7fbe19484a5f  (/usr/lib64/libwayland-server.so.0+0xca5f)
    #14 0x7fbe194816d1  (/usr/lib64/libwayland-server.so.0+0x96d1)
    #15 0x7fbe19482c71 in wl_event_loop_dispatch (/usr/lib64/libwayland-server.so.0+0xac71)
    #16 0x7fbe1fde6e50 in KWayland::Server::Display::Private::dispatch() /home/jenkins/workspace/Administration/Dependency Build Plasma kf5-qt5 SUSEQt5.12/kwayland/src/server/display.cpp:148
    #17 0x7fbe1fde82de in KWayland::Server::Display::dispatchEvents(int) /home/jenkins/workspace/Administration/Dependency Build Plasma kf5-qt5 SUSEQt5.12/kwayland/src/server/display.cpp:220
    #18 0x7fbe2872b446 in KWin::WaylandServer::dispatch() /home/jenkins/workspace/Plasma/kwin/kf5-qt5 SUSEQt5.12/wayland_server.cpp:616
    #19 0x457e08 in KWin::WaylandTestApplication::~WaylandTestApplication() /home/jenkins/workspace/Plasma/kwin/kf5-qt5 SUSEQt5.12/autotests/integration/kwin_wayland_test.cpp:91
    #20 0x43500b in main /home/jenkins/workspace/Plasma/kwin/kf5-qt5 SUSEQt5.12/autotests/integration/debug_console_test.cpp:530
    #21 0x7fbe1d03bbca in __libc_start_main (/lib64/libc.so.6+0x26bca)
    #22 0x414ed9 in _start (/home/jenkins/workspace/Plasma/kwin/kf5-qt5 SUSEQt5.12/build/bin/testDebugConsole+0x414ed9)
This commit is contained in:
Vlad Zagorodniy 2019-07-29 23:08:52 +03:00
parent b6e67869e3
commit 0a693ce7f1

View file

@ -418,7 +418,7 @@ void ShellClient::destroyClient()
m_closing = true; m_closing = true;
#ifdef KWIN_BUILD_TABBOX #ifdef KWIN_BUILD_TABBOX
TabBox::TabBox *tabBox = TabBox::TabBox::self(); TabBox::TabBox *tabBox = TabBox::TabBox::self();
if (tabBox->isDisplayed() && tabBox->currentClient() == this) { if (tabBox && tabBox->isDisplayed() && tabBox->currentClient() == this) {
tabBox->nextPrev(true); tabBox->nextPrev(true);
} }
#endif #endif