Fix a mismatch if \K was involved in a recursion
This commit is contained in:
parent
0c6f2eb02b
commit
223b0aaf60
61
pcre2-10.36-Fix-K-within-recursion-bug-in-interpreter.patch
Normal file
61
pcre2-10.36-Fix-K-within-recursion-bug-in-interpreter.patch
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
From 1ef05f50d623582e8493ab49cfe0c243eed175c9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: ph10 <ph10@6239d852-aaf2-0410-a92c-79f79f948069>
|
||||||
|
Date: Thu, 18 Feb 2021 09:46:08 +0000
|
||||||
|
Subject: [PATCH] Fix \K within recursion bug in interpreter.
|
||||||
|
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@1301 6239d852-aaf2-0410-a92c-79f79f948069
|
||||||
|
Petr Písař: Ported to 10.36.
|
||||||
|
---
|
||||||
|
src/pcre2_match.c | 4 +++-
|
||||||
|
testdata/testinput1 | 3 +++
|
||||||
|
testdata/testoutput1 | 4 ++++
|
||||||
|
|
||||||
|
diff --git a/src/pcre2_match.c b/src/pcre2_match.c
|
||||||
|
index e3f78c2..7d9cad0 100644
|
||||||
|
--- a/src/pcre2_match.c
|
||||||
|
+++ b/src/pcre2_match.c
|
||||||
|
@@ -818,10 +818,12 @@ fprintf(stderr, "++ op=%d\n", *Fecode);
|
||||||
|
|
||||||
|
/* N is now the frame of the recursion; the previous frame is at the
|
||||||
|
OP_RECURSE position. Go back there, copying the current subject position
|
||||||
|
- and mark, and move on past the OP_RECURSE. */
|
||||||
|
+ and mark, and the start_match position (\K might have changed it), and
|
||||||
|
+ then move on past the OP_RECURSE. */
|
||||||
|
|
||||||
|
P->eptr = Feptr;
|
||||||
|
P->mark = Fmark;
|
||||||
|
+ P->start_match = Fstart_match;
|
||||||
|
F = P;
|
||||||
|
Fecode += 1 + LINK_SIZE;
|
||||||
|
continue;
|
||||||
|
diff --git a/testdata/testinput1 b/testdata/testinput1
|
||||||
|
index bb4ddb7..4cf1126 100644
|
||||||
|
--- a/testdata/testinput1
|
||||||
|
+++ b/testdata/testinput1
|
||||||
|
@@ -6429,4 +6429,7 @@ ef) x/x,mark
|
||||||
|
/a{65536/
|
||||||
|
>a{65536<
|
||||||
|
|
||||||
|
+/a\K.(?0)*/
|
||||||
|
+ abac
|
||||||
|
+
|
||||||
|
# End of testinput1
|
||||||
|
diff --git a/testdata/testoutput1 b/testdata/testoutput1
|
||||||
|
index 05b310b..8d4c108 100644
|
||||||
|
--- a/testdata/testoutput1
|
||||||
|
+++ b/testdata/testoutput1
|
||||||
|
@@ -10188,4 +10188,8 @@ No match
|
||||||
|
>a{65536<
|
||||||
|
0: a{65536
|
||||||
|
|
||||||
|
+/a\K.(?0)*/
|
||||||
|
+ abac
|
||||||
|
+ 0: c
|
||||||
|
+
|
||||||
|
# End of testinput1
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
@ -9,7 +9,7 @@
|
|||||||
#%%global rcversion RC1
|
#%%global rcversion RC1
|
||||||
Name: pcre2
|
Name: pcre2
|
||||||
Version: 10.36
|
Version: 10.36
|
||||||
Release: %{?rcversion:0.}3%{?rcversion:.%rcversion}%{?dist}
|
Release: %{?rcversion:0.}4%{?rcversion:.%rcversion}%{?dist}
|
||||||
%global myversion %{version}%{?rcversion:-%rcversion}
|
%global myversion %{version}%{?rcversion:-%rcversion}
|
||||||
Summary: Perl-compatible regular expression library
|
Summary: Perl-compatible regular expression library
|
||||||
# the library: BSD with exceptions
|
# the library: BSD with exceptions
|
||||||
@ -58,6 +58,8 @@ Patch1: pcre2-10.36-Get-rid-of-gcc-fanalyzer-error-though-it-was-probabl.pat
|
|||||||
# a closing bracket as a quantifier, upstream bug #2690, in upstream after
|
# a closing bracket as a quantifier, upstream bug #2690, in upstream after
|
||||||
# 10.36
|
# 10.36
|
||||||
Patch2: pcre2-10.36-Fix-some-numerical-checking-bugs-Bugzilla-2690.patch
|
Patch2: pcre2-10.36-Fix-some-numerical-checking-bugs-Bugzilla-2690.patch
|
||||||
|
# Fix a mismatch if \K was involved in a recursion, in upstream after 10.36
|
||||||
|
Patch3: pcre2-10.36-Fix-K-within-recursion-bug-in-interpreter.patch
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: coreutils
|
BuildRequires: coreutils
|
||||||
@ -261,6 +263,9 @@ make %{?_smp_mflags} check VERBOSE=yes
|
|||||||
%{_mandir}/man1/pcre2test.*
|
%{_mandir}/man1/pcre2test.*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Feb 19 2021 Petr Pisar <ppisar@redhat.com> - 10.36-4
|
||||||
|
- Fix a mismatch if \K was involved in a recursion
|
||||||
|
|
||||||
* Tue Feb 02 2021 Petr Pisar <ppisar@redhat.com> - 10.36-3
|
* Tue Feb 02 2021 Petr Pisar <ppisar@redhat.com> - 10.36-3
|
||||||
- Fix misparsing long numbers as a backreference and a number without
|
- Fix misparsing long numbers as a backreference and a number without
|
||||||
a closing bracket as a quantifier (upstream bug #2690)
|
a closing bracket as a quantifier (upstream bug #2690)
|
||||||
|
Loading…
Reference in New Issue
Block a user