Fix jitted range check
This commit is contained in:
parent
a379af41ca
commit
f5ba2517b3
55
pcre-8.34-Fix-range-check-in-JIT-path.patch
Normal file
55
pcre-8.34-Fix-range-check-in-JIT-path.patch
Normal file
@ -0,0 +1,55 @@
|
||||
From c061f6a865a473cf93aae1e6a0ccd2325509a6b2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Thu, 9 Jan 2014 13:39:28 +0100
|
||||
Subject: [PATCH] Fix range check in JIT path
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Jitted range check was wrong:
|
||||
|
||||
re> /[efij]/S+
|
||||
data> e
|
||||
No match
|
||||
|
||||
while interpretted path is correct:
|
||||
|
||||
re> /[efij]/
|
||||
data> e
|
||||
0: e
|
||||
|
||||
This fix is part of:
|
||||
|
||||
commit c07887b22a83fba842e88889c9e57a622b9ee439
|
||||
Author: zherczeg <zherczeg@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||
Date: Sun Dec 22 20:47:08 2013 +0000
|
||||
|
||||
The auto-possessification of character sets were improved. The JIT compiler also optimizes more character set checks.
|
||||
|
||||
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1415 2f5784b3-3f2a-0410-8824-cb99058d5e15
|
||||
|
||||
<http://bugs.exim.org/show_bug.cgi?id=1423>
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
pcre_jit_compile.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/pcre_jit_compile.c b/pcre_jit_compile.c
|
||||
index d070263..47447da 100644
|
||||
--- a/pcre_jit_compile.c
|
||||
+++ b/pcre_jit_compile.c
|
||||
@@ -3573,7 +3573,9 @@ switch(ranges[0])
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
- if ((ranges[3] - ranges[2]) == (ranges[5] - ranges[4]) && is_powerof2(ranges[4] - ranges[2]))
|
||||
+ if ((ranges[3] - ranges[2]) == (ranges[5] - ranges[4])
|
||||
+ && (ranges[2] | (ranges[4] - ranges[2])) == ranges[4]
|
||||
+ && is_powerof2(ranges[4] - ranges[2]))
|
||||
{
|
||||
if (readch)
|
||||
read_char(common);
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -2,7 +2,7 @@
|
||||
#%%global rcversion RC1
|
||||
Name: pcre
|
||||
Version: 8.34
|
||||
Release: %{?rcversion:0.}1%{?rcversion:.%rcversion}%{?dist}
|
||||
Release: %{?rcversion:0.}2%{?rcversion:.%rcversion}%{?dist}
|
||||
%global myversion %{version}%{?rcversion:-%rcversion}
|
||||
Summary: Perl-compatible regular expression library
|
||||
Group: System Environment/Libraries
|
||||
@ -13,6 +13,8 @@ Source: ftp://ftp.csx.cam.ac.uk/pub/software/programming/%{name}/%{?rcversion:Te
|
||||
Patch0: pcre-8.21-multilib.patch
|
||||
# Refused by upstream, bug #675477
|
||||
Patch1: pcre-8.32-refused_spelling_terminated.patch
|
||||
# Fix jitted range check, in upstream after 8.34, bug #1048097
|
||||
Patch2: pcre-8.34-Fix-range-check-in-JIT-path.patch
|
||||
BuildRequires: readline-devel
|
||||
# New libtool to get rid of rpath
|
||||
BuildRequires: autoconf, automake, libtool
|
||||
@ -54,6 +56,7 @@ Utilities demonstrating PCRE capabilities like pcregrep or pcretest.
|
||||
# Get rid of rpath
|
||||
%patch0 -p1 -b .multilib
|
||||
%patch1 -p1 -b .terminated_typos
|
||||
%patch2 -p1 -b .jitted_range_check
|
||||
# Because of rpath patch
|
||||
libtoolize --copy --force && autoreconf -vif
|
||||
# One contributor's name is non-UTF-8
|
||||
@ -121,6 +124,9 @@ make check
|
||||
%{_mandir}/man1/pcretest.*
|
||||
|
||||
%changelog
|
||||
* Thu Jan 09 2014 Petr Pisar <ppisar@redhat.com> - 8.34-2
|
||||
- Fix jitted range check (bug #1048097)
|
||||
|
||||
* Mon Dec 16 2013 Petr Pisar <ppisar@redhat.com> - 8.34-1
|
||||
- 8.34 bump
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user