summaryrefslogtreecommitdiff
path: root/src/input_handler.cc
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2023-05-29 20:10:50 +1000
committerMaxime Coste <mawww@kakoune.org>2023-05-29 20:10:50 +1000
commit3069b68245a0bd5451fac33a56097eb7c9351975 (patch)
tree311dd526118750ccfe4ba1318b75cdd85e8eaeaa /src/input_handler.cc
parent45c01c2109b1c6c1f7728c64f6800c6670425ea5 (diff)
parente49c0fb04095a2a1c546fd033ce2a1a6df3eb8d0 (diff)
Merge remote-tracking branch 'krobelus/fix-unmap-uaf'
Diffstat (limited to 'src/input_handler.cc')
-rw-r--r--src/input_handler.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/input_handler.cc b/src/input_handler.cc
index 129a7e03..fb1d9ff6 100644
--- a/src/input_handler.cc
+++ b/src/input_handler.cc
@@ -1773,7 +1773,10 @@ void InputHandler::handle_key(Key key)
if (keymaps.is_mapped(key, keymap_mode) and not m_context.keymaps_disabled())
{
ScopedSetBool disable_history{context().history_disabled()};
- for (auto& k : keymaps.get_mapping(key, keymap_mode).keys)
+
+ auto& mapping = keymaps.get_mapping(key, keymap_mode);
+ ScopedSetBool executing_mapping{mapping.is_executing};
+ for (auto& k : mapping.keys)
process_key(k);
}
else