Fix a buffer overflow when compiling an expression with named groups with a group that reset capture numbers
This commit is contained in:
parent
208e1de173
commit
8facddd842
@ -0,0 +1,67 @@
|
|||||||
|
From 40363ebc19baeab160abaaa55dc84322a89ac35a Mon Sep 17 00:00:00 2001
|
||||||
|
From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||||
|
Date: Sat, 5 Dec 2015 16:58:46 +0000
|
||||||
|
Subject: [PATCH] Fix (by hacking) another length computation issue.
|
||||||
|
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@1619 2f5784b3-3f2a-0410-8824-cb99058d5e15
|
||||||
|
|
||||||
|
Petr Písař: Ported to 8.38.
|
||||||
|
|
||||||
|
diff --git a/pcre_compile.c b/pcre_compile.c
|
||||||
|
index 57719b9..087bf2a 100644
|
||||||
|
--- a/pcre_compile.c
|
||||||
|
+++ b/pcre_compile.c
|
||||||
|
@@ -7280,7 +7280,7 @@ for (;; ptr++)
|
||||||
|
issue is fixed "properly" in PCRE2. As PCRE1 is now in maintenance
|
||||||
|
only mode, we finesse the bug by allowing more memory always. */
|
||||||
|
|
||||||
|
- *lengthptr += 2 + 2*LINK_SIZE;
|
||||||
|
+ *lengthptr += 4 + 4*LINK_SIZE;
|
||||||
|
|
||||||
|
/* It is even worse than that. The current reference may be to an
|
||||||
|
existing named group with a different number (so apparently not
|
||||||
|
diff --git a/testdata/testoutput11-16 b/testdata/testoutput11-16
|
||||||
|
index 9a0a12d..280692e 100644
|
||||||
|
--- a/testdata/testoutput11-16
|
||||||
|
+++ b/testdata/testoutput11-16
|
||||||
|
@@ -231,7 +231,7 @@ Memory allocation (code space): 73
|
||||||
|
------------------------------------------------------------------
|
||||||
|
|
||||||
|
/(?P<a>a)...(?P=a)bbb(?P>a)d/BM
|
||||||
|
-Memory allocation (code space): 77
|
||||||
|
+Memory allocation (code space): 93
|
||||||
|
------------------------------------------------------------------
|
||||||
|
0 24 Bra
|
||||||
|
2 5 CBra 1
|
||||||
|
diff --git a/testdata/testoutput11-32 b/testdata/testoutput11-32
|
||||||
|
index 57e5da0..cdbda74 100644
|
||||||
|
--- a/testdata/testoutput11-32
|
||||||
|
+++ b/testdata/testoutput11-32
|
||||||
|
@@ -231,7 +231,7 @@ Memory allocation (code space): 155
|
||||||
|
------------------------------------------------------------------
|
||||||
|
|
||||||
|
/(?P<a>a)...(?P=a)bbb(?P>a)d/BM
|
||||||
|
-Memory allocation (code space): 157
|
||||||
|
+Memory allocation (code space): 189
|
||||||
|
------------------------------------------------------------------
|
||||||
|
0 24 Bra
|
||||||
|
2 5 CBra 1
|
||||||
|
diff --git a/testdata/testoutput11-8 b/testdata/testoutput11-8
|
||||||
|
index 748548a..cb37896 100644
|
||||||
|
--- a/testdata/testoutput11-8
|
||||||
|
+++ b/testdata/testoutput11-8
|
||||||
|
@@ -231,7 +231,7 @@ Memory allocation (code space): 45
|
||||||
|
------------------------------------------------------------------
|
||||||
|
|
||||||
|
/(?P<a>a)...(?P=a)bbb(?P>a)d/BM
|
||||||
|
-Memory allocation (code space): 50
|
||||||
|
+Memory allocation (code space): 62
|
||||||
|
------------------------------------------------------------------
|
||||||
|
0 30 Bra
|
||||||
|
3 7 CBra 1
|
||||||
|
--
|
||||||
|
2.4.3
|
||||||
|
|
@ -59,6 +59,10 @@ Patch8: pcre-8.38-Fix-x-bug-when-pattern-starts-with-white-space-and-x.patch
|
|||||||
# number greater than the space in the ovector, upstream bug #1741,
|
# number greater than the space in the ovector, upstream bug #1741,
|
||||||
# in fixed in upstream after 8.38
|
# in fixed in upstream after 8.38
|
||||||
Patch9: pcre-8.38-Fix-copy-named-substring-bug.patch
|
Patch9: pcre-8.38-Fix-copy-named-substring-bug.patch
|
||||||
|
# Fix a buffer overflow when compiling an expression with named groups with
|
||||||
|
# a group that reset capture numbers, upstream bug #1742,
|
||||||
|
# fixed in upstream after 8.38
|
||||||
|
Patch10: pcre-8.38-Fix-by-hacking-another-length-computation-issue.patch
|
||||||
BuildRequires: readline-devel
|
BuildRequires: readline-devel
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
@ -117,6 +121,7 @@ Utilities demonstrating PCRE capabilities like pcregrep or pcretest.
|
|||||||
%patch7 -p1
|
%patch7 -p1
|
||||||
%patch8 -p1
|
%patch8 -p1
|
||||||
%patch9 -p1
|
%patch9 -p1
|
||||||
|
%patch10 -p1
|
||||||
# Because of rpath patch
|
# Because of rpath patch
|
||||||
libtoolize --copy --force
|
libtoolize --copy --force
|
||||||
autoreconf -vif
|
autoreconf -vif
|
||||||
@ -191,6 +196,8 @@ make %{?_smp_mflags} check VERBOSE=yes
|
|||||||
* Mon Dec 07 2015 Petr Pisar <ppisar@redhat.com> - 8.38-5
|
* Mon Dec 07 2015 Petr Pisar <ppisar@redhat.com> - 8.38-5
|
||||||
- Fix possible crash in pcre_copy_named_substring() if a named substring has
|
- Fix possible crash in pcre_copy_named_substring() if a named substring has
|
||||||
number greater than the space in the ovector (upstream bug #1741)
|
number greater than the space in the ovector (upstream bug #1741)
|
||||||
|
- Fix a buffer overflow when compiling an expression with named groups with
|
||||||
|
a group that reset capture numbers (upstream bug #1742)
|
||||||
|
|
||||||
* Fri Dec 04 2015 Petr Pisar <ppisar@redhat.com> - 8.38-4
|
* Fri Dec 04 2015 Petr Pisar <ppisar@redhat.com> - 8.38-4
|
||||||
- Fix compiling expressions with global extended modifier that is disabled by
|
- Fix compiling expressions with global extended modifier that is disabled by
|
||||||
|
Loading…
Reference in New Issue
Block a user