summaryrefslogtreecommitdiff
path: root/src/dfasearch.c
diff options
context:
space:
mode:
authorJim Meyering <meyering@fb.com>2016-02-20 12:50:27 -0800
committerJim Meyering <meyering@fb.com>2016-02-20 19:43:05 -0800
commit3ce8b39e3137d3cdcf8cec84dc89788037e76742 (patch)
treefa7cbd0d0d9b1ca68763a811c8cedb7208a70986 /src/dfasearch.c
parent121d63666fed298769a19354e517fd9a7190a3a2 (diff)
downloadgrep-3ce8b39e3137d3cdcf8cec84dc89788037e76742.tar.gz
grep -z: avoid erroneous match with regexp anchor and \n in text
* src/dfasearch.c (EGexecute): Clear the newline_anchor bit when eolbyte is not '\n'. * tests/z-anchor-newline: New file. * tests/Makefile.am (TESTS): Add it. * NEWS (Bug fixes): Describe it. Originally reported by Ulrich Mueller in https://bugs.gentoo.org/show_bug.cgi?id=574662 Reported to us by Sergei Trofimovich as http://debbugs.gnu.org/22655
Diffstat (limited to 'src/dfasearch.c')
-rw-r--r--src/dfasearch.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/dfasearch.c b/src/dfasearch.c
index e04a2dfd..d348d444 100644
--- a/src/dfasearch.c
+++ b/src/dfasearch.c
@@ -342,6 +342,7 @@ EGexecute (char *buf, size_t size, size_t *match_size,
for (i = 0; i < pcount; i++)
{
patterns[i].regexbuf.not_eol = 0;
+ patterns[i].regexbuf.newline_anchor = eolbyte == '\n';
start = re_search (&(patterns[i].regexbuf),
beg, end - beg - 1,
ptr - beg, end - ptr - 1,