diff options
author | Mikael Magnusson <mikachu@gmail.com> | 2022-04-03 01:08:51 +0200 |
---|---|---|
committer | Mikael Magnusson <mikachu@gmail.com> | 2022-04-03 11:28:14 +0200 |
commit | 9eda39735430549f2beebc94282fee90b4fb552c (patch) | |
tree | 714738e1614f72da7543485296a557a9d3843bdb /Src | |
parent | 92f193f7dea9cb4883197a96aee2bab7ffdf72af (diff) | |
download | zsh-9eda39735430549f2beebc94282fee90b4fb552c.tar.gz zsh-9eda39735430549f2beebc94282fee90b4fb552c.tar.xz zsh-9eda39735430549f2beebc94282fee90b4fb552c.zip |
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.
Diffstat (limited to 'Src')
-rw-r--r-- | Src/Zle/compcore.c | 4 |
1 files changed, 2 insertions, 2 deletions
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; |