Fix reporting rightmost consulted characters

This commit is contained in:
Petr Písař 2019-08-12 14:25:22 +02:00
parent eebba95644
commit 64eff980f8
2 changed files with 96 additions and 1 deletions

View File

@ -0,0 +1,89 @@
From ec098f6b898334be0674dbadc9fd67a0532fa0eb Mon Sep 17 00:00:00 2001
From: ph10 <ph10@6239d852-aaf2-0410-a92c-79f79f948069>
Date: Sat, 10 Aug 2019 11:34:50 +0000
Subject: [PATCH] Fix allusedtext bug, rightmost consulted character incorrect
in negative lookaheads.
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@1157 6239d852-aaf2-0410-a92c-79f79f948069
Petr Písař: Ported to 10.33.
---
src/pcre2_match.c | 1 +
testdata/testinput15 | 4 ++++
testdata/testinput2 | 2 +-
testdata/testoutput15 | 8 ++++++++
testdata/testoutput2 | 2 +-
diff --git a/src/pcre2_match.c b/src/pcre2_match.c
index 26fc01e..4471183 100644
--- a/src/pcre2_match.c
+++ b/src/pcre2_match.c
@@ -5971,6 +5971,7 @@ in rrc. */
#define LBL(val) case val: goto L_RM##val;
RETURN_SWITCH:
+if (Feptr > mb->last_used_ptr) mb->last_used_ptr = Feptr;
if (Frdepth == 0) return rrc; /* Exit from the top level */
F = (heapframe *)((char *)F - Fback_frame); /* Backtrack */
mb->cb->callout_flags |= PCRE2_CALLOUT_BACKTRACK; /* Note for callouts */
diff --git a/testdata/testinput15 b/testdata/testinput15
index 2cb712d..5dd6897 100644
--- a/testdata/testinput15
+++ b/testdata/testinput15
@@ -231,4 +231,8 @@
/(*LIMIT_HEAP=21)\[(a)]{60}/expand
\[a]{60}
+/b(?<!ax)(?!cx)/allusedtext
+ abc
+ abcz
+
# End of testinput15
diff --git a/testdata/testinput2 b/testdata/testinput2
index 4377f80..7b44fb0 100644
--- a/testdata/testinput2
+++ b/testdata/testinput2
@@ -4584,7 +4584,7 @@ B)x/alt_verbnames,mark
/abcd/null_context
abcd\=null_context
-\= Expect error
+\= Expect error - not allowed together
abcd\=null_context,find_limits
abcd\=allusedtext,startchar
diff --git a/testdata/testoutput15 b/testdata/testoutput15
index c51cda7..d854412 100644
--- a/testdata/testoutput15
+++ b/testdata/testoutput15
@@ -525,4 +525,12 @@ No match
\[a]{60}
Failed: error -63: heap limit exceeded
+/b(?<!ax)(?!cx)/allusedtext
+ abc
+ 0: abc
+ < >
+ abcz
+ 0: abcz
+ < >>
+
# End of testinput15
diff --git a/testdata/testoutput2 b/testdata/testoutput2
index 0fd2187..0803d9e 100644
--- a/testdata/testoutput2
+++ b/testdata/testoutput2
@@ -14803,7 +14803,7 @@ No match
/abcd/null_context
abcd\=null_context
0: abcd
-\= Expect error
+\= Expect error - not allowed together
abcd\=null_context,find_limits
** Not allowed together: find_limits null_context
abcd\=allusedtext,startchar
--
2.21.0

View File

@ -9,7 +9,7 @@
#%%global rcversion RC1
Name: pcre2
Version: 10.33
Release: %{?rcversion:0.}10%{?rcversion:.%rcversion}%{?dist}
Release: %{?rcversion:0.}11%{?rcversion:.%rcversion}%{?dist}
%global myversion %{version}%{?rcversion:-%rcversion}
Summary: Perl-compatible regular expression library
# the library: BSD with exceptions
@ -88,6 +88,8 @@ Patch12: pcre2-10.33-Fix-bug-in-recent-patch-for-lookbehinds-within-looka.pat
# Fix an incorrect computation of a group length when a branch exceeds 65535,
# upstream bug #2428, in upstream after 10.33
Patch13: pcre2-10.33-Fix-incorrect-computation-of-group-length-when-one-b.patch
# Fix reporting rightmost consulted characters, in upstream after 10.33
Patch14: pcre2-10.33-Fix-allusedtext-bug-rightmost-consulted-character-in.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: coreutils
@ -179,6 +181,7 @@ Utilities demonstrating PCRE2 capabilities like pcre2grep or pcre2test.
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
# Because of multilib patch
libtoolize --copy --force
autoreconf -vif
@ -277,6 +280,9 @@ make %{?_smp_mflags} check VERBOSE=yes
%{_mandir}/man1/pcre2test.*
%changelog
* Mon Aug 12 2019 Petr Pisar <ppisar@redhat.com> - 10.33-11
- Fix reporting rightmost consulted characters
* Mon Aug 05 2019 Petr Pisar <ppisar@redhat.com> - 10.33-10
- Fix an incorrect computation of a group length when a branch exceeds 65535
(upstream bug #2428)