about summary refs log tree commit diff
path: root/Src
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@gmail.com>2022-03-10 13:12:08 +0100
committerMikael Magnusson <mikachu@gmail.com>2022-03-30 08:08:09 +0200
commit054ccf76664c357edb6ac20cc141c9e288751c46 (patch)
tree6716b9eca819da38f7fa60ae693c589ecac9c274 /Src
parentd7b8619396d806d390126c2abd1c3ce099fe7f59 (diff)
downloadzsh-054ccf76664c357edb6ac20cc141c9e288751c46.tar.gz
zsh-054ccf76664c357edb6ac20cc141c9e288751c46.tar.xz
zsh-054ccf76664c357edb6ac20cc141c9e288751c46.zip
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}} }
Diffstat (limited to 'Src')
-rw-r--r--Src/Zle/compresult.c7
1 files changed, 4 insertions, 3 deletions
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);