From 84317d3d2a186450f811b2ea8b48918a1b63ade5 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Sat, 29 Jul 2023 03:08:35 -0700 Subject: [PATCH] Fix UAF when collapsing children of ephemeral nodes in a shift --- src/Hy3Layout.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp index 59c85df..0e14fd3 100644 --- a/src/Hy3Layout.cpp +++ b/src/Hy3Layout.cpp @@ -1426,7 +1426,9 @@ Hy3Node* Hy3Layout::shiftOrGetFocus( if (old_parent != nullptr) { auto& group = old_parent->data.as_group; - if (old_parent->parent != nullptr && group.ephemeral && group.children.size() == 1) { + if (old_parent->parent != nullptr && group.ephemeral && group.children.size() == 1 + && !group.hasChild(&node)) + { Hy3Node::swallowGroups(old_parent); }