From 9eda39735430549f2beebc94282fee90b4fb552c Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Sun, 3 Apr 2022 01:08:51 +0200 Subject: 49957: Brown paper bag for 49915 The code would crash when n == 0. There's not really any point doing any of this when n is 0 so just skip everything. It also tried to NULL terminate a list a little to eagerly. --- ChangeLog | 2 ++ Src/Zle/compcore.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index f7766aefa..3b0edff7a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,8 @@ * 49959: Completion/Zsh/Context/_brace_parameter: _brace_parameter: add (-) + * 49957: Src/Zle/compcore.c: Brown paper bag for 49915 + 2022-04-02 dana * unposted (see 48073): Completion/Zsh/Command/_fc: Complete diff --git a/Src/Zle/compcore.c b/Src/Zle/compcore.c index 18b8cb531..fe3ea10fc 100644 --- a/Src/Zle/compcore.c +++ b/Src/Zle/compcore.c @@ -3247,7 +3247,7 @@ makearray(LinkList l, int type, int flags, int *np, int *nlp, int *llp) } *cp = NULL; } - } else { + } else if (n > 0) { if (!(flags & CGF_NOSORT)) { /* Now sort the array (it contains matches). */ matchorder = flags; @@ -3320,8 +3320,8 @@ makearray(LinkList l, int type, int flags, int *np, int *nlp, int *llp) } *ap = *bp; } + *ap = NULL; } - *ap = NULL; /* passed -1 but not -2, so remove consecutive duplicates (efficient) */ } else if (!(flags & CGF_UNIQCON)) { int dup; -- cgit 1.4.1