22492633 problem in LIBRARY/PCRE
authorRich Burridge <rich.burridge@oracle.com>
Wed, 02 Mar 2016 16:57:57 -0800
changeset 5540 bfcdc34c39a9
parent 5539 d20398d81411
child 5541 e93ae190039c
22492633 problem in LIBRARY/PCRE
components/pcre/patches/04-pcre_compile.c.patch
components/pcre/test/results-all.master
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/pcre/patches/04-pcre_compile.c.patch	Wed Mar 02 16:57:57 2016 -0800
@@ -0,0 +1,28 @@
+This patch fixes CVE-2016-1283, filed upstream as:
+
+  https://bugs.exim.org/show_bug.cgi?id=1767
+
+See also:
+
+  http://www.cvedetails.com/cve-details.php?t=1&cve_id=cve-2016-1283
+
+This problem has already been fixed upstream in the svn code repository at:
+
+  svn://vcs.exim.org/pcre/code/trunk
+
+--- pcre-8.38/pcre_compile.c.orig	2016-03-02 10:28:48.735223798 -0800
++++ pcre-8.38/pcre_compile.c	2016-03-02 10:30:50.856995461 -0800
+@@ -7274,7 +7274,12 @@
+           so far in order to get the number. If the name is not found, leave
+           the value of recno as 0 for a forward reference. */
+ 
+-          else
++          /* This patch (removing "else") fixes a problem when a reference is
++          to multiple identically named nested groups from within the nest.
++          Once again, it is not the "proper" fix, and it results in an
++          over-allocation of memory. */
++
++          /* else */
+             {
+             ng = cd->named_groups;
+             for (i = 0; i < cd->names_found; i++, ng++)
--- a/components/pcre/test/results-all.master	Wed Mar 02 14:39:49 2016 -0800
+++ b/components/pcre/test/results-all.master	Wed Mar 02 16:57:57 2016 -0800
@@ -1,15 +1,15 @@
-make[1]: Entering directory `$(@D)'
+make[1]: Entering directory '$(@D)'
 /usr/gnu/bin/make  check-am
-make[2]: Entering directory `$(@D)'
+make[2]: Entering directory '$(@D)'
 /usr/gnu/bin/make  
-make[3]: Entering directory `$(@D)'
+make[3]: Entering directory '$(@D)'
 /usr/gnu/bin/make  all-am
-make[4]: Entering directory `$(@D)'
-make[4]: Leaving directory `$(@D)'
-make[3]: Leaving directory `$(@D)'
+make[4]: Entering directory '$(@D)'
+make[4]: Leaving directory '$(@D)'
+make[3]: Leaving directory '$(@D)'
 /usr/gnu/bin/make  check-TESTS
-make[3]: Entering directory `$(@D)'
-make[4]: Entering directory `$(@D)'
+make[3]: Entering directory '$(@D)'
+make[4]: Entering directory '$(@D)'
 PASS: pcrecpp_unittest
 PASS: pcre_scanner_unittest
 PASS: pcre_stringpiece_unittest
@@ -26,7 +26,7 @@
 # XPASS: 0
 # ERROR: 0
 ============================================================================
-make[4]: Leaving directory `$(@D)'
-make[3]: Leaving directory `$(@D)'
-make[2]: Leaving directory `$(@D)'
-make[1]: Leaving directory `$(@D)'
+make[4]: Leaving directory '$(@D)'
+make[3]: Leaving directory '$(@D)'
+make[2]: Leaving directory '$(@D)'
+make[1]: Leaving directory '$(@D)'