https://bugs.kde.org/show_bug.cgi?id=401608

            Bug ID: 401608
           Summary: KWin crashes when clicking "cancel" in the active
                    aurorae's properties dialog
           Product: kwin
           Version: 5.14.4
          Platform: openSUSE RPMs
                OS: Linux
            Status: REPORTED
          Severity: crash
          Priority: NOR
         Component: aurorae
          Assignee: kwin-bugs-n...@kde.org
          Reporter: fab...@ritter-vogt.de
  Target Milestone: ---
             Flags: Wayland+, X11?

To reproduce:
- Set plastik or any other aurorae deco as active
- Open its properties dialog
- Click cancel

KWin crashes.

Only tried on wayland.

BT (same crash, but with kwin 5.12.6):

Thread 1 "kwin_wayland" received signal SIGSEGV, Segmentation fault.
KWin::Scene::windowClosed (this=0x55e94b02c4c0, c=<optimized out>,
deleted=0x55e94c5710f0) at
/usr/src/debug/kwin5-5.12.6-lp150.2.3.1.x86_64/scene.cpp:419
419             if (w->shadow()) {
(gdb) bt
#0  KWin::Scene::windowClosed (this=0x55e94b02c4c0, c=<optimized out>,
deleted=0x55e94c5710f0) at
/usr/src/debug/kwin5-5.12.6-lp150.2.3.1.x86_64/scene.cpp:419
#1  0x00007fd1ba0374d3 in KWin::Scene::qt_static_metacall (_o=<optimized out>,
_c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at
/usr/src/debug/kwin5-5.12.6-lp150.2.3.1.x86_64/build/kwin_autogen/EWIEGA46WW/moc_scene.cpp:98
#2  0x00007fd1b7a1004a in QMetaObject::activate(QObject*, int, int, void**) ()
from /usr/lib64/libQt5Core.so.5
#3  0x00007fd1ba03131e in KWin::Toplevel::windowClosed
(this=this@entry=0x55e94c0b2b40, _t1=<optimized out>, _t1@entry=0x55e94c0b2b40,
_t2=<optimized out>, _t2@entry=0x55e94c5710f0)
    at
/usr/src/debug/kwin5-5.12.6-lp150.2.3.1.x86_64/build/kwin_autogen/EWIEGA46WW/moc_toplevel.cpp:718
#4  0x00007fd1b9fd518c in KWin::ShellClient::destroyClient
(this=0x55e94c0b2b40) at
/usr/src/debug/kwin5-5.12.6-lp150.2.3.1.x86_64/shell_client.cpp:362
#5  0x00007fd1b7a1014c in QMetaObject::activate(QObject*, int, int, void**) ()
from /usr/lib64/libQt5Core.so.5
#6  0x00007fd1b7a107ef in QObject::destroyed(QObject*) () from
/usr/lib64/libQt5Core.so.5
#7  0x00007fd1b7a16b9a in QObject::~QObject() () from
/usr/lib64/libQt5Core.so.5
#8  0x00007fd1b8e797d7 in ?? () from /usr/lib64/libKF5WaylandServer.so.5
#9  0x00007fd1b7a10a58 in QObject::event(QEvent*) () from
/usr/lib64/libQt5Core.so.5
#10 0x00007fd1b800de8c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /usr/lib64/libQt5Widgets.so.5
#11 0x00007fd1b8015244 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib64/libQt5Widgets.so.5
#12 0x00007fd1b79e2a88 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /usr/lib64/libQt5Core.so.5
#13 0x00007fd1b79e5075 in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) () from /usr/lib64/libQt5Core.so.5
#14 0x00007fd1b27f72cd in ?? () from /usr/lib64/libQt5Quick.so.5
#15 0x00007fd1b27f75e0 in QQuickRenderControl::~QQuickRenderControl() () from
/usr/lib64/libQt5Quick.so.5
#16 0x00007fd1b27f7609 in QQuickRenderControl::~QQuickRenderControl() () from
/usr/lib64/libQt5Quick.so.5
#17 0x00007fd189373cee in Aurorae::Decoration::~Decoration
(this=0x55e94c55e8b0, __in_chrg=<optimized out>) at
/usr/src/debug/kwin5-5.12.6-lp150.2.3.1.x86_64/plugins/kdecorations/aurorae/src/aurorae.cpp:273
#18 0x00007fd189373e29 in Aurorae::Decoration::~Decoration
(this=0x55e94c55e8b0, __in_chrg=<optimized out>) at
/usr/src/debug/kwin5-5.12.6-lp150.2.3.1.x86_64/plugins/kdecorations/aurorae/src/aurorae.cpp:280
#19 0x00007fd1b9ea4d56 in KWin::AbstractClient::destroyDecoration
(this=0x55e94c0b2b40) at
/usr/src/debug/kwin5-5.12.6-lp150.2.3.1.x86_64/abstract_client.cpp:1435
#20 0x00007fd1b9fd51a0 in KWin::ShellClient::destroyClient
(this=0x55e94c0b2b40) at
/usr/src/debug/kwin5-5.12.6-lp150.2.3.1.x86_64/shell_client.cpp:364
#21 0x00007fd1b7a1014c in QMetaObject::activate(QObject*, int, int, void**) ()
from /usr/lib64/libQt5Core.so.5
#22 0x00007fd1b8e58928 in
KWayland::Server::Resource::Private::unbind(wl_resource*) () from
/usr/lib64/libKF5WaylandServer.so.5
#23 0x00007fd1afeb45a0 in ?? () from /usr/lib64/libwayland-server.so.0
#24 0x00007fd1afeb45f2 in wl_resource_destroy () from
/usr/lib64/libwayland-server.so.0
#25 0x00007fd1a9a816bd in ?? () from /usr/lib64/libffi.so.7
#26 0x00007fd1a9a80bcf in ?? () from /usr/lib64/libffi.so.7
#27 0x00007fd1afeb80ab in ?? () from /usr/lib64/libwayland-server.so.0
#28 0x00007fd1afeb48ef in ?? () from /usr/lib64/libwayland-server.so.0
#29 0x00007fd1afeb6282 in wl_event_loop_dispatch () from
/usr/lib64/libwayland-server.so.0
#30 0x00007fd1b8e3d1ae in KWayland::Server::Display::Private::dispatch() ()
from /usr/lib64/libKF5WaylandServer.so.5
#31 0x00007fd1b7a1014c in QMetaObject::activate(QObject*, int, int, void**) ()
from /usr/lib64/libQt5Core.so.5
#32 0x00007fd1b7a1beb8 in QSocketNotifier::activated(int,
QSocketNotifier::QPrivateSignal) () from /usr/lib64/libQt5Core.so.5
#33 0x00007fd1b7a1c222 in QSocketNotifier::event(QEvent*) () from
/usr/lib64/libQt5Core.so.5
#34 0x00007fd1b800de8c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /usr/lib64/libQt5Widgets.so.5
#35 0x00007fd1b8015244 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib64/libQt5Widgets.so.5
#36 0x00007fd1b79e2a88 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /usr/lib64/libQt5Core.so.5
#37 0x00007fd1b7a35e48 in
QEventDispatcherUNIXPrivate::activateSocketNotifiers() () from
/usr/lib64/libQt5Core.so.5
#38 0x00007fd1b7a364b8 in
QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib64/libQt5Core.so.5
#39 0x00007fd1a20c173d in QUnixEventDispatcherQPA::processEvents
(this=<optimized out>, flags=...) at qunixeventdispatcher.cpp:68
#40 0x00007fd1b79e109a in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib64/libQt5Core.so.5
#41 0x00007fd1b79e99e4 in QCoreApplication::exec() () from
/usr/lib64/libQt5Core.so.5
#42 0x000055e94a126f06 in main (argc=<optimized out>, argv=<optimized out>) at
/usr/src/debug/kwin5-5.12.6-lp150.2.3.1.x86_64/main_wayland.cpp:927

It looks like KWin::ShellClient::destroyClient ends up calling
KWin::ShellClient::destroyClient again - but as m_windows does not contain the
toplevel anymore, it dereferences a nullptr and crashes.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to