From 39ae9cd10a5987ac71dee8bef7bd3bc2ba5e4eb8 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Tue, 25 Oct 2016 11:53:49 +0100 Subject: 39723: metafy string passed to pattern in complist. Also additional safety tokenizing a string with Meta characters. --- ChangeLog | 6 ++++++ Src/Zle/complist.c | 1 + Src/glob.c | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/ChangeLog b/ChangeLog index ee1fd94dc..775ad22e6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2016-10-25 Peter Stephenson + + * 39723: Src/Zle/complist.c, Src/glob.c: metafy string to be + used in pattern for complist. Also skip metafied characters + when tokenizing (typically this has no effect, however). + 2016-10-24 Barton E. Schaefer * unposted: NEWS, README: update for 39704. diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c index 39ac782eb..d4672a194 100644 --- a/Src/Zle/complist.c +++ b/Src/Zle/complist.c @@ -415,6 +415,7 @@ getcoldef(char *s) break; *s++ = '\0'; } + p = metafy(p, strlen(p), META_USEHEAP); tokenize(p); if ((prog = patcompile(p, 0, NULL))) { Patcol pc, po; diff --git a/Src/glob.c b/Src/glob.c index a845c5fbb..50f6dceb3 100644 --- a/Src/glob.c +++ b/Src/glob.c @@ -3499,6 +3499,10 @@ zshtokenize(char *s, int flags) for (; *s; s++) { cont: switch (*s) { + case Meta: + /* skip both Meta and following character */ + s++; + break; case Bnull: case Bnullkeep: case '\\': -- cgit 1.4.1