pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/lang/python21 Bump to nb8 for PCRE security issue



details:   https://anonhg.NetBSD.org/pkgsrc/rev/ad4d7b3d0c93
branches:  trunk
changeset: 502055:ad4d7b3d0c93
user:      adrianp <adrianp%pkgsrc.org@localhost>
date:      Tue Nov 01 21:49:31 2005 +0000

description:
Bump to nb8 for PCRE security issue

diffstat:

 lang/python21/Makefile         |   4 +-
 lang/python21/distinfo         |   5 ++-
 lang/python21/patches/patch-bd |  12 ++++++
 lang/python21/patches/patch-be |  19 ++++++++++
 lang/python21/patches/patch-bf |  73 ++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 110 insertions(+), 3 deletions(-)

diffs (147 lines):

diff -r 53b7ddf405d1 -r ad4d7b3d0c93 lang/python21/Makefile
--- a/lang/python21/Makefile    Tue Nov 01 21:48:39 2005 +0000
+++ b/lang/python21/Makefile    Tue Nov 01 21:49:31 2005 +0000
@@ -1,9 +1,9 @@
-# $NetBSD: Makefile,v 1.23 2005/05/29 11:18:35 minskim Exp $
+# $NetBSD: Makefile,v 1.24 2005/11/01 21:49:31 adrianp Exp $
 #
 
 DISTNAME=      Python-2.1.3
 PKGNAME=       python21-2.1.3
-PKGREVISION=   7
+PKGREVISION=   8
 CATEGORIES=    lang python
 MASTER_SITES=  ftp://ftp.python.org/pub/python/2.1.3/
 EXTRACT_SUFX=  .tgz
diff -r 53b7ddf405d1 -r ad4d7b3d0c93 lang/python21/distinfo
--- a/lang/python21/distinfo    Tue Nov 01 21:48:39 2005 +0000
+++ b/lang/python21/distinfo    Tue Nov 01 21:49:31 2005 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.19 2005/05/29 11:07:49 minskim Exp $
+$NetBSD: distinfo,v 1.20 2005/11/01 21:49:31 adrianp Exp $
 
 SHA1 (Python-2.1.3.tgz) = 7042a5c5fd60d334c0ac227885d68a4c305713b4
 RMD160 (Python-2.1.3.tgz) = d7216480cf884507d97bf7932767871977fc1ccc
@@ -14,3 +14,6 @@
 SHA1 (patch-aj) = ca232f769b57f617496f5c8701a0a32fe55f1fd9
 SHA1 (patch-bb) = 81780dd270791238687e57fb2969abe3547ea79d
 SHA1 (patch-bc) = 6761f59c7403b76420970288dc89330c094f7b2c
+SHA1 (patch-bd) = 1fcff14864fbd52f350f63bec57e2952a4715ca4
+SHA1 (patch-be) = e1e5675e8b1059bd7836f8f23382a8305382a91b
+SHA1 (patch-bf) = 5a4f05c563d46c66485780c8dd8badac624c4f49
diff -r 53b7ddf405d1 -r ad4d7b3d0c93 lang/python21/patches/patch-bd
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/python21/patches/patch-bd    Tue Nov 01 21:49:31 2005 +0000
@@ -0,0 +1,12 @@
+$NetBSD: patch-bd,v 1.1 2005/11/01 21:49:31 adrianp Exp $
+
+--- Modules/pcre.h.orig        2000-06-28 21:56:30.000000000 +0100
++++ Modules/pcre.h
+@@ -40,6 +40,7 @@ extern "C" {
+ #ifdef FOR_PYTHON
+ #define PCRE_LOCALE          0x0200
+ #endif
++#define PCRE_NO_AUTO_CAPTURE    0x1000
+ 
+ /* Exec-time error codes */
+ 
diff -r 53b7ddf405d1 -r ad4d7b3d0c93 lang/python21/patches/patch-be
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/python21/patches/patch-be    Tue Nov 01 21:49:31 2005 +0000
@@ -0,0 +1,19 @@
+$NetBSD: patch-be,v 1.1 2005/11/01 21:49:31 adrianp Exp $
+
+--- Modules/pcre-int.h.orig    1998-05-07 16:32:38.000000000 +0100
++++ Modules/pcre-int.h
+@@ -81,11 +81,12 @@ only some permitted at run or study time
+ #define PUBLIC_OPTIONS \
+   (PCRE_CASELESS|PCRE_EXTENDED|PCRE_ANCHORED|PCRE_MULTILINE| \
+    PCRE_DOTALL|PCRE_DOLLAR_ENDONLY|PCRE_EXTRA|PCRE_UNGREEDY| \
+-   PCRE_LOCALE)
++   PCRE_NO_AUTO_CAPTURE|PCRE_LOCALE)
+ #else
+ #define PUBLIC_OPTIONS \
+   (PCRE_CASELESS|PCRE_EXTENDED|PCRE_ANCHORED|PCRE_MULTILINE| \
+-   PCRE_DOTALL|PCRE_DOLLAR_ENDONLY|PCRE_EXTRA|PCRE_UNGREEDY)
++   PCRE_DOTALL|PCRE_DOLLAR_ENDONLY|PCRE_EXTRA|PCRE_UNGREEDY| \
++   PCRE_NO_AUTO_CAPTURE)
+ #endif
+ #define PUBLIC_EXEC_OPTIONS \
+   (PCRE_CASELESS|PCRE_ANCHORED|PCRE_MULTILINE|PCRE_NOTBOL|PCRE_NOTEOL| \
diff -r 53b7ddf405d1 -r ad4d7b3d0c93 lang/python21/patches/patch-bf
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/python21/patches/patch-bf    Tue Nov 01 21:49:31 2005 +0000
@@ -0,0 +1,73 @@
+$NetBSD: patch-bf,v 1.1 2005/11/01 21:49:31 adrianp Exp $
+
+--- Modules/pypcre.c.orig      2000-08-02 14:41:18.000000000 +0100
++++ Modules/pypcre.c
+@@ -1162,14 +1162,31 @@ read_repeat_counts(const uschar *p, int 
+ int min = 0;
+ int max = -1;
+ 
++/* Read the minimum value and do a paranoid check: a negative value indicates
++an integer overflow. */
++
+ while ((pcre_ctypes[*p] & ctype_digit) != 0) min = min * 10 + *p++ - '0';
+ 
++if (min < 0 || min > 65535)
++  {
++  *errorptr = ERR5;
++  return p;
++  }
++
++/* Read the maximum value if there is one, and again do a paranoid on its size
++. Also, max must not be less than min. */
++
+ if (*p == '}') max = min; else
+   {
+   if (*(++p) != '}')
+     {
+     max = 0;
+     while((pcre_ctypes[*p] & ctype_digit) != 0) max = max * 10 + *p++ - '0';
++    if (max < 0 || max > 65535)
++      {
++      *errorptr = ERR5;
++      return p;
++      }
+     if (max < min)
+       {
+       *errorptr = ERR4;
+@@ -2266,6 +2283,7 @@ int c, size;
+ int bracount = 0;
+ int brastack[200];
+ int top_backref = 0;
++BOOL capturing;
+ unsigned int brastackptr = 0;
+ uschar *code;
+ const uschar *ptr;
+@@ -2445,7 +2463,8 @@ while ((c = *(++ptr)) != 0)
+     /* Brackets may be genuine groups or special things */
+ 
+     case '(':
+-
++    capturing = FALSE;
++    
+     /* Handle special forms of bracket, which all start (? */
+ 
+     if (ptr[1] == '?') switch (c = ptr[2])
+@@ -2541,11 +2560,16 @@ while ((c = *(++ptr)) != 0)
+         }
+       continue;                      /* End of this bracket handling */
+       }
++    
++    /* Ordinary parentheses, not followed by '?', are capturing unless
++    PCRE_NO_AUTO_CAPTURE is set. */
+ 
++    else capturing = (options & PCRE_NO_AUTO_CAPTURE) == 0;
++    
+     /* Extracting brackets must be counted so we can process escapes in a
+     Perlish way. */
+-
+-    else bracount++;
++    
++    if (capturing) bracount++;
+ 
+     /* Non-special forms of bracket. Save length for computing whole length
+     at end if there's a repeat that requires duplication of the group. */



Home | Main Index | Thread Index | Old Index