[pcre] Fix unmatched subpattern to not become wildcard

Petr Pisar ppisar at fedoraproject.org
Mon Jan 2 11:54:49 UTC 2012


commit 404ec6765648672a28ed5c0c61c4e00b044f923a
Author: Petr Písař <ppisar at redhat.com>
Date:   Mon Jan 2 11:11:24 2012 +0100

    Fix unmatched subpattern to not become wildcard

 ...Do-not-make-unmatched-subpattern-wildcard.patch |   73 ++++++++++++++++++++
 pcre.spec                                          |    8 ++-
 2 files changed, 80 insertions(+), 1 deletions(-)
---
diff --git a/pcre-8.21-Do-not-make-unmatched-subpattern-wildcard.patch b/pcre-8.21-Do-not-make-unmatched-subpattern-wildcard.patch
new file mode 100644
index 0000000..9f7008d
--- /dev/null
+++ b/pcre-8.21-Do-not-make-unmatched-subpattern-wildcard.patch
@@ -0,0 +1,73 @@
+From 1daa2332fb112a2868957e0ed42242e6115d0d72 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar at redhat.com>
+Date: Mon, 2 Jan 2012 10:56:09 +0100
+Subject: [PATCH] Do not make unmatched subpattern wildcard
+
+Back-ported from:
+r836 | ph10 | 2011-12-28 18:16:11 +0100 (St, 28 pro 2011) | 2 lines
+Merging all the changes from the pcre16 branch into the trunk.
+
+See <https://bugzilla.redhat.com/show_bug.cgi?id=769597> for more
+details.
+---
+ pcre_exec.c          |    6 +++++-
+ testdata/testinput1  |    6 ++++++
+ testdata/testoutput1 |   10 ++++++++++
+ 3 files changed, 21 insertions(+), 1 deletions(-)
+
+diff --git a/pcre_exec.c b/pcre_exec.c
+index 46498d5..a7cec30 100644
+--- a/pcre_exec.c
++++ b/pcre_exec.c
+@@ -2620,9 +2620,13 @@ for (;;)
+       }
+ 
+     /* Handle repeated back references. If the length of the reference is
+-    zero, just continue with the main loop. */
++    zero, just continue with the main loop. If the length is negative, it
++    means the reference is unset in non-Java-compatible mode. If the minimum is
++    zero, we can continue at the same level without recursion. For any other
++    minimum, carrying on will result in NOMATCH. */
+ 
+     if (length == 0) continue;
++    if (length < 0 && min == 0) continue;
+ 
+     /* First, ensure the minimum number of matches are present. We get back
+     the length of the reference string explicitly rather than passing the
+diff --git a/testdata/testinput1 b/testdata/testinput1
+index 36d7028..b41de5a 100644
+--- a/testdata/testinput1
++++ b/testdata/testinput1
+@@ -4318,4 +4318,10 @@
+ /a[\C-X]b/
+     aJb
+ 
++/(another)?(\1?)test/
++    hello world test
++
++/(another)?(\1+)test/
++    hello world test
++
+ /-- End of testinput1 --/
+diff --git a/testdata/testoutput1 b/testdata/testoutput1
+index bc237ab..2357ddb 100644
+--- a/testdata/testoutput1
++++ b/testdata/testoutput1
+@@ -7053,4 +7053,14 @@ No match
+     aJb
+  0: aJb
+ 
++/(another)?(\1?)test/
++    hello world test
++ 0: test
++ 1: <unset>
++ 2: 
++
++/(another)?(\1+)test/
++    hello world test
++No match
++
+ /-- End of testinput1 --/
+-- 
+1.7.7.5
+
diff --git a/pcre.spec b/pcre.spec
index 052acd9..0655b97 100644
--- a/pcre.spec
+++ b/pcre.spec
@@ -2,7 +2,7 @@
 #%%global rcversion RC1
 Name: pcre
 Version: 8.21
-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.20-refused_spelling_terminated.patch
+# Bug #769597, fixed by upstream after 8.21.
+Patch2: pcre-8.21-Do-not-make-unmatched-subpattern-wildcard.patch
 BuildRequires: readline-devel
 # New libtool to get rid of rpath
 BuildRequires: autoconf, automake, libtool
@@ -53,6 +55,7 @@ Utilities demonstrating PCRE capabilities like pcregrep or pcretest.
 %patch0 -p1 -b .multilib
 libtoolize --copy --force && autoreconf
 %patch1 -p1 -b .terminated_typos
+%patch2 -p1 -b .unmatched_subpattern
 # One contributor's name is non-UTF-8
 for F in ChangeLog; do
     iconv -f latin1 -t utf8 "$F" >"${F}.utf8"
@@ -123,6 +126,9 @@ make check
 %{_mandir}/man1/pcretest.*
 
 %changelog
+* Mon Jan 02 2012 Petr Pisar <ppisar at redhat.com> - 8.21-2
+- Fix unmatched subpattern to not become wildcard (bug #769597)
+
 * Mon Dec 12 2011 Petr Pisar <ppisar at redhat.com> - 8.21-1
 - 8.21 bump
 


More information about the scm-commits mailing list