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

--- Comment #16 from gggeri91 <[email protected]> ---
Git commit 3cf955f11319f48271221120cbfee6d37e3efd73 by Gergő Gelóczi.
Committed on 12/08/2026 at 07:01.
Pushed by meven into branch 'master'.

dolphinmainwindow: freeze KFileItemActions while a context menu is open

KFileItemAction plugins are queried one after another while the menu is
built, and some spin the event loop in actions(); the one from the
Nextcloud desktop client runs one for up to 100 ms. A kservicemenurc or
kdeglobals change arriving in that window reaches the KConfigWatcher in
the constructor, which calls setupFileItemActions() and deletes the
KFileItemActions that addPluginActionsTo() is holding across its loop.
The replacement lands on the freed address, so the plugins queried
afterwards read a default constructed item list rather than garbage.
Several take items().first() without checking it, so Dolphin segfaults
inside the plugin.

Defer setupFileItemActions() until the menu is gone and run the pending
setup from a scope guard in openContextMenu().

Dolphin's own MoveToNewFolderItemAction was one of the plugins on the
receiving end. It captured the empty list and crashed on at(0) once the
action was triggered, rather than while the menu was built. Guard it too,
since other applications load it as well.
Related: bug 519624

M  +18   -2    src/dolphinmainwindow.cpp
M  +4    -1    src/dolphinmainwindow.h
M  +4    -0    src/itemactions/movetonewfolderitemaction.cpp
M  +74   -0    src/tests/dolphinmainwindowtest.cpp

https://invent.kde.org/system/dolphin/-/commit/3cf955f11319f48271221120cbfee6d37e3efd73

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

Reply via email to