D22986: RFC: fix: Prevent heap-use-after-free when tearing down
Vlad Zagorodniy
noreply at phabricator.kde.org
Wed Aug 7 11:35:38 BST 2019
zzag created this revision.
zzag added a reviewer: KWin.
Herald added a project: KWin.
Herald added a subscriber: kwin.
zzag requested review of this revision.
REVISION SUMMARY
Managing lifetime of objects during tear down is a bit clunky in KWin
mostly because the wayland server outlives the workspace.
3f4e7334684 <https://phabricator.kde.org/R108:3f4e73346845092a4fc555f03888c2398c299e0f> tried to tackle one aspect of this problem, but the proposed
solution is good only in short term. If a ShellClient wants to discard
force temporarily rules, it needs to access RuleBook, whose lifetime is
bounded to the workspace, no matter what happens. Otherwise, the force
temporarily rule will be applied again on the next startup.
It's worth to mention that there was another attempt to address this
problem, see commit 826b9742e95 <https://phabricator.kde.org/R108:826b9742e95069f1a15df5c1ccf4f17083be2726>. It was reverted because some internal
clients may need to destroy Wayland resources during tear down.
This change takes another approach. In order to ensure that ShellClient
can access RuleBook during tear down, we manually destroy Wayland clients
in destructor of the Workspace class. Something is done already for X11
clients.
REPOSITORY
R108 KWin
BRANCH
another-patch-to-fix-heap-use-after-free
REVISION DETAIL
https://phabricator.kde.org/D22986
AFFECTED FILES
shell_client.cpp
shell_client.h
workspace.cpp
To: zzag, #kwin
Cc: kwin, LeGast00n, sbergeron, jraleigh, fbampaloukas, GB_2, mkulinski, ragreen, jackyalcine, Pitel, iodelay, crozbo, bwowk, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, hardening, romangg, jensreuterberg, abetts, sebas, apol, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kwin/attachments/20190807/21ff1283/attachment-0001.html>
More information about the kwin
mailing list