From ca95b01236de914608be599cb0118e3b4d0e7fad Mon Sep 17 00:00:00 2001 From: ache Date: Tue, 6 Sep 2016 00:32:33 +0000 Subject: [PATCH] MFC r305365 The bug: $ echo x | awk '/[[:cntrl:]]/' x The NUL character in cntrl class truncates the pattern, and an empty pattern matches anything. The patch skips NUL as a quick fix. PR: 195792 Submitted by: kdrakehp@zoho.com Approved by: bwk@cs.princeton.edu (the author) --- contrib/one-true-awk/b.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/one-true-awk/b.c b/contrib/one-true-awk/b.c index 447993521975..5b59c07fbb71 100644 --- a/contrib/one-true-awk/b.c +++ b/contrib/one-true-awk/b.c @@ -841,7 +841,7 @@ int relex(void) /* lexical analyzer for reparse */ if (cc->cc_name != NULL && prestr[1 + cc->cc_namelen] == ':' && prestr[2 + cc->cc_namelen] == ']') { prestr += cc->cc_namelen + 3; - for (i = 0; i < NCHARS; i++) { + for (i = 1; i < NCHARS; i++) { if (!adjbuf((char **) &buf, &bufsz, bp-buf+1, 100, (char **) &bp, "relex2")) FATAL("out of space for reg expr %.10s...", lastre); if (cc->cc_func(i)) {