summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@gmail.com>2026-06-08 16:59:27 +0200
committerMikael Magnusson <mikachu@gmail.com>2026-06-10 05:20:52 +0200
commit5fc00ccd292609e8974f5f87cb2bbd5f34504e57 (patch)
tree3d2ba22be0ecbb537bf17841dd749a07b5d8f1a9 /ChangeLog
parent54704 + 54728: remove obsolete workaround in ksh93 module (diff)
downloadzsh-5fc00ccd292609e8974f5f87cb2bbd5f34504e57.tar
zsh-5fc00ccd292609e8974f5f87cb2bbd5f34504e57.tar.gz
zsh-5fc00ccd292609e8974f5f87cb2bbd5f34504e57.tar.bz2
zsh-5fc00ccd292609e8974f5f87cb2bbd5f34504e57.tar.lz
zsh-5fc00ccd292609e8974f5f87cb2bbd5f34504e57.tar.xz
zsh-5fc00ccd292609e8974f5f87cb2bbd5f34504e57.tar.zst
zsh-5fc00ccd292609e8974f5f87cb2bbd5f34504e57.zip
54705: ksh93: fix use after free of .sh.edchar
% bindkey T foo % zle -N foo % foo() { emulate -L ksh; () { zle -M ${.sh.edchar} } } % zmodload zsh/ksh93 % [press T twice] \M-(\M-^Ak\M-<\M-G^? or alternatively, emulate ksh in the main shell and just define this, but then you have to make sure you're in a zsh -f shell so random things aren't entering functions in the background. % foo() { zle -M ${.sh.edchar} } the code tries to restore sh_edchar = sh_unsetval; in the else branch, but this doesn't ever run in the above scenario because we never enter or leave a function with ksh emulation enabled (or indeed at all).
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog3
1 files changed, 3 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index ec5d72124..a130d22cc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2026-06-10 Mikael Magnusson <mikachu@gmail.com>
+ * 54705: Src/Modules/ksh93.c: ksh93: fix use after free of
+ .sh.edchar
+
* 54704 + 54728: Src/Modules/ksh93.c: remove obsolete workaround
in ksh93 module