From 054ccf76664c357edb6ac20cc141c9e288751c46 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Thu, 10 Mar 2022 13:12:08 +0100 Subject: [PATCH] 49820: Fix a crash when completing with combination of -Q and braces minimal reproducer .zshrc: zstyle ':completion:*' completer _oldlist _complete setopt nolistambiguous autoload compinit; compinit compdef _foo foo;_foo() { compadd -Q -- stash@{{0,1}} } --- ChangeLog | 17 ++++++++++------- Src/Zle/compresult.c | 7 ++++--- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index a525d2093..c52119fa8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,10 +1,3 @@ -2022-03-30 Jun-ichi Takimoto - - * 49910: Test/D07multibyte.ztst, Test/E03posix.ztst: move - multibyte-related incompatibility with POSIX from E03 to D07 - - * 49908: Test/ztst.zsh: reset LC_CTYPE to C during tests. - 2022-03-30 Mikael Magnusson * 49893: Src/Zle/comp.h, Src/Zle/compcore.c: Fix comments for @@ -18,6 +11,16 @@ * 49813: Doc/Zsh/redirect.yo, Src/exec.c: <<<: Document newline behavior and fix optimization + * 49820: Src/Zle/compresult.c: Fix a crash when completing with + combination of -Q and braces + +2022-03-30 Jun-ichi Takimoto + + * 49910: Test/D07multibyte.ztst, Test/E03posix.ztst: move + multibyte-related incompatibility with POSIX from E03 to D07 + + * 49908: Test/ztst.zsh: reset LC_CTYPE to C during tests. + 2022-03-29 Bart Schaefer * 49918: NEWS, README: Update for 49917 and 49911. diff --git a/Src/Zle/compresult.c b/Src/Zle/compresult.c index 8b5955819..0fed297b5 100644 --- a/Src/Zle/compresult.c +++ b/Src/Zle/compresult.c @@ -612,9 +612,10 @@ instmatch(Cmatch m, int *scs) int pcs = zlemetacs; l = 0; - for (bp = brbeg, brpos = m->brpl, - bradd = (m->pre ? strlen(m->pre) : 0); - bp; bp = bp->next, brpos++) { + bradd = (m->pre ? strlen(m->pre) : 0); + for (bp = brbeg, brpos = m->brpl; + bp && brpos; + bp = bp->next, brpos++) { zlemetacs = a + *brpos + bradd; pcs = zlemetacs; l = strlen(bp->str);