Fix miscopmilation of conditionals when a group name start with "R"
This commit is contained in:
parent
4b06e5c4e1
commit
36c95bef7f
@ -0,0 +1,80 @@
|
|||||||
|
From a2d87770aebc2ba13d6943ff1fcfae0fc26a3134 Mon Sep 17 00:00:00 2001
|
||||||
|
From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||||
|
Date: Thu, 13 Oct 2016 16:00:48 +0000
|
||||||
|
Subject: [PATCH] Fix bad conditional recursion test bug when a group with name
|
||||||
|
starting "R" exists.
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1667 2f5784b3-3f2a-0410-8824-cb99058d5e15
|
||||||
|
|
||||||
|
Petr Písař: Ported to 8.39.
|
||||||
|
|
||||||
|
diff --git a/pcre_compile.c b/pcre_compile.c
|
||||||
|
index fb80ed1..67c74e8 100644
|
||||||
|
--- a/pcre_compile.c
|
||||||
|
+++ b/pcre_compile.c
|
||||||
|
@@ -6951,7 +6951,8 @@ for (;; ptr++)
|
||||||
|
slot = cd->name_table;
|
||||||
|
for (i = 0; i < cd->names_found; i++)
|
||||||
|
{
|
||||||
|
- if (STRNCMP_UC_UC(name, slot+IMM2_SIZE, namelen) == 0) break;
|
||||||
|
+ if (STRNCMP_UC_UC(name, slot+IMM2_SIZE, namelen) == 0 &&
|
||||||
|
+ slot[IMM2_SIZE+namelen] == 0) break;
|
||||||
|
slot += cd->name_entry_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/testdata/testinput2 b/testdata/testinput2
|
||||||
|
index 75e402e..38346ef 100644
|
||||||
|
--- a/testdata/testinput2
|
||||||
|
+++ b/testdata/testinput2
|
||||||
|
@@ -4243,4 +4243,8 @@ backtracking verbs. --/
|
||||||
|
|
||||||
|
/\N(?(?C)0?!.)*/
|
||||||
|
|
||||||
|
+/(?<RA>abc)(?(R)xyz)/BZ
|
||||||
|
+
|
||||||
|
+/(?<R>abc)(?(R)xyz)/BZ
|
||||||
|
+
|
||||||
|
/-- End of testinput2 --/
|
||||||
|
diff --git a/testdata/testoutput2 b/testdata/testoutput2
|
||||||
|
index 5e88d1a..216bff8 100644
|
||||||
|
--- a/testdata/testoutput2
|
||||||
|
+++ b/testdata/testoutput2
|
||||||
|
@@ -14670,4 +14670,32 @@ No match
|
||||||
|
/\N(?(?C)0?!.)*/
|
||||||
|
Failed: assertion expected after (?( or (?(?C) at offset 4
|
||||||
|
|
||||||
|
+/(?<RA>abc)(?(R)xyz)/BZ
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ CBra 1
|
||||||
|
+ abc
|
||||||
|
+ Ket
|
||||||
|
+ Cond
|
||||||
|
+ Cond recurse any
|
||||||
|
+ xyz
|
||||||
|
+ Ket
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+
|
||||||
|
+/(?<R>abc)(?(R)xyz)/BZ
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+ Bra
|
||||||
|
+ CBra 1
|
||||||
|
+ abc
|
||||||
|
+ Ket
|
||||||
|
+ Cond
|
||||||
|
+ 1 Cond ref
|
||||||
|
+ xyz
|
||||||
|
+ Ket
|
||||||
|
+ Ket
|
||||||
|
+ End
|
||||||
|
+------------------------------------------------------------------
|
||||||
|
+
|
||||||
|
/-- End of testinput2 --/
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
@ -50,6 +50,9 @@ Patch4: pcre-8.39-Fix-character-class-bug-when-a-Unicode-property-was-.patch
|
|||||||
Patch5: pcre-8.39-Fix-pcretest-callout-display-bug.patch
|
Patch5: pcre-8.39-Fix-pcretest-callout-display-bug.patch
|
||||||
# Fix pcrepattern(3) documentation, in upstream after 8.39
|
# Fix pcrepattern(3) documentation, in upstream after 8.39
|
||||||
Patch6: pcre-8.39-Fix-typos-in-documentation.patch
|
Patch6: pcre-8.39-Fix-typos-in-documentation.patch
|
||||||
|
# Fix miscopmilation of conditionals when a group name start with "R",
|
||||||
|
# in upstream after 8.39, upstream bug #1873
|
||||||
|
Patch7: pcre-8.39-Fix-bad-conditional-recursion-test-bug-when-a-group-.patch
|
||||||
BuildRequires: readline-devel
|
BuildRequires: readline-devel
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
@ -144,6 +147,7 @@ Utilities demonstrating PCRE capabilities like pcregrep or pcretest.
|
|||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
%patch5 -p1
|
%patch5 -p1
|
||||||
%patch6 -p1
|
%patch6 -p1
|
||||||
|
%patch7 -p1
|
||||||
# Because of rpath patch
|
# Because of rpath patch
|
||||||
libtoolize --copy --force
|
libtoolize --copy --force
|
||||||
autoreconf -vif
|
autoreconf -vif
|
||||||
@ -244,6 +248,8 @@ make %{?_smp_mflags} check VERBOSE=yes
|
|||||||
- Fix displaying position in pcretest callout with an escape sequence greater
|
- Fix displaying position in pcretest callout with an escape sequence greater
|
||||||
than \x{ff}
|
than \x{ff}
|
||||||
- Fix pcrepattern(3) documentation
|
- Fix pcrepattern(3) documentation
|
||||||
|
- Fix miscopmilation of conditionals when a group name start with "R"
|
||||||
|
(upstream bug #1873)
|
||||||
|
|
||||||
* Tue Aug 30 2016 Petr Pisar <ppisar@redhat.com> - 8.39-3
|
* Tue Aug 30 2016 Petr Pisar <ppisar@redhat.com> - 8.39-3
|
||||||
- Fix register overwite in JIT when SSE2 acceleration is enabled
|
- Fix register overwite in JIT when SSE2 acceleration is enabled
|
||||||
|
Loading…
Reference in New Issue
Block a user