pcre2/pcre2-10.20-Fix-PCRE2_NO_AUTO_CAPTURE-bug.patch
2015-10-26 10:20:04 +01:00

76 lines
2.3 KiB
Diff

From fb774225c09cdb4848026167035596f502f28a5f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Mon, 26 Oct 2015 10:17:01 +0100
Subject: [PATCH] Fix PCRE2_NO_AUTO_CAPTURE bug
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream commit ported to 10.20:
From 0536f51c8511921664d1dbfa7fbc156d0d687942 Mon Sep 17 00:00:00 2001
From: ph10 <ph10@6239d852-aaf2-0410-a92c-79f79f948069>
Date: Sun, 25 Oct 2015 17:35:34 +0000
Subject: [PATCH] Fix PCRE2_NO_AUTO_CAPTURE bug.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
git-svn-id: svn://vcs.exim.org/pcre2/code/trunk@393 6239d852-aaf2-0410-a92c-79f79f948069
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
src/pcre2_compile.c | 7 ++++---
testdata/testinput2 | 4 ++++
testdata/testoutput2 | 6 ++++++
3 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/src/pcre2_compile.c b/src/pcre2_compile.c
index 5d3584d..13febc9 100644
--- a/src/pcre2_compile.c
+++ b/src/pcre2_compile.c
@@ -3326,9 +3326,10 @@ for (; ptr < cb->end_pattern; ptr++)
if (ptr[1] != CHAR_QUESTION_MARK)
{
- if (ptr[1] != CHAR_ASTERISK &&
- (options & PCRE2_NO_AUTO_CAPTURE) == 0)
- cb->bracount++; /* Capturing group */
+ if (ptr[1] != CHAR_ASTERISK)
+ {
+ if ((options & PCRE2_NO_AUTO_CAPTURE) == 0) cb->bracount++;
+ }
else /* (*something) - just skip to closing ket */
{
ptr += 2;
diff --git a/testdata/testinput2 b/testdata/testinput2
index dc64019..35ebe47 100644
--- a/testdata/testinput2
+++ b/testdata/testinput2
@@ -4329,4 +4329,8 @@ a random value. /Ix
/^(o(\1{72}{\"{\\{00000059079}\d*){74}}){19}/I
+/((p(?'K/
+
+/((p(?'K/no_auto_capture
+
# End of testinput2
diff --git a/testdata/testoutput2 b/testdata/testoutput2
index cfc3ef0..3fdbc1f 100644
--- a/testdata/testoutput2
+++ b/testdata/testoutput2
@@ -14478,4 +14478,10 @@ Overall options: anchored
Last code unit = '}'
Subject length lower bound = 52629
+/((p(?'K/
+Failed: error 142 at offset 7: syntax error in subpattern name (missing terminator)
+
+/((p(?'K/no_auto_capture
+Failed: error 142 at offset 7: syntax error in subpattern name (missing terminator)
+
# End of testinput2
--
2.4.3