Merge remote-tracking branch 'krobelus/fix-remap-uaf'

This commit is contained in:
Maxime Coste 2023-07-04 19:33:10 +10:00
commit 96ff68aeae
5 changed files with 11 additions and 0 deletions

View File

@ -13,6 +13,9 @@ namespace Kakoune
void KeymapManager::map_key(Key key, KeymapMode mode, void KeymapManager::map_key(Key key, KeymapMode mode,
KeyList mapping, String docstring) KeyList mapping, String docstring)
{ {
if (auto it = m_mapping.find(KeyAndMode{key, mode}); it != m_mapping.end())
if (it->value.is_executing)
throw runtime_error("cannot map key that is currently executing");
m_mapping[KeyAndMode{key, mode}] = {std::move(mapping), std::move(docstring)}; m_mapping[KeyAndMode{key, mode}] = {std::move(mapping), std::move(docstring)};
} }

View File

@ -0,0 +1,3 @@
!printf $kak_opt_source_count<ret>l
<space>s
!printf $kak_opt_source_count<ret>

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@
12

View File

@ -0,0 +1,3 @@
try %{ map global user s %exp{:source %%{%val{source}}<ret>} -docstring "re-source my kakrc" }
declare-option int source_count
set-option -add global source_count 1