[med-svn] r18771 - trunk/packages/rcsb-core-wrapper/trunk/debian/patches
Andreas Tille
tille at moszumanska.debian.org
Sat Feb 14 16:55:18 UTC 2015
Author: tille
Date: 2015-02-14 16:55:17 +0000 (Sat, 14 Feb 2015)
New Revision: 18771
Added:
trunk/packages/rcsb-core-wrapper/trunk/debian/patches/regcomp_cert_fix.patch
Modified:
trunk/packages/rcsb-core-wrapper/trunk/debian/patches/series
Log:
Henry Spencer regular expressions (regex) library contains a heap overflow vulnerability
Added: trunk/packages/rcsb-core-wrapper/trunk/debian/patches/regcomp_cert_fix.patch
===================================================================
--- trunk/packages/rcsb-core-wrapper/trunk/debian/patches/regcomp_cert_fix.patch (rev 0)
+++ trunk/packages/rcsb-core-wrapper/trunk/debian/patches/regcomp_cert_fix.patch 2015-02-14 16:55:17 UTC (rev 18771)
@@ -0,0 +1,42 @@
+Author: Andreas Tille <tille at debian.org>
+Last-Update: Sat, 14 Feb 2015 17:51:06 +0100
+Origin: https://gitweb.dragonflybsd.org/dragonfly.git/blobdiff_plain/4d133046c59a851141519d03553a70e903b3eefc..2841837793bd095a82f477e9c370cfe6cfb3862c:/lib/libc/regex/regcomp.c
+Bug-Debian: http://bugs.debian.org/778397
+Description: Henry Spencer regular expressions (regex) library contains a heap overflow vulnerability
+ This patch adapts the patch found at Origin (see above) to the
+ regex code found in librcsb-core-wrapper.
+
+--- librcsb-core-wrapper-1.005.orig/regex/src/regcomp.c
++++ librcsb-core-wrapper-1.005/regex/src/regcomp.c
+@@ -93,6 +93,7 @@ int cflags;
+ register struct parse *p = &pa;
+ register int i;
+ register size_t len;
++ register size_t maxlen;
+ #ifdef REDEBUG
+ # define GOODFLAGS(f) (f)
+ #else
+@@ -115,7 +116,23 @@ int cflags;
+ (NC-1)*sizeof(cat_t));
+ if (g == NULL)
+ return(REG_ESPACE);
++ /*
++ * Limit the pattern space to avoid a 32-bit overflow on buffer
++ * extension. Also avoid any signed overflow in case of conversion
++ * so make the real limit based on a 31-bit overflow.
++ *
++ * Likely not applicable on 64-bit systems but handle the case
++ * generically (who are we to stop people from using ~715MB+
++ * patterns?).
++ */
++ maxlen = ((size_t)-1 >> 1) / sizeof(sop) * 2 / 3;
++ if (len >= maxlen) {
++ free((char *)g);
++ return(REG_ESPACE);
++ }
+ p->ssize = len/(size_t)2*(size_t)3 + (size_t)1; /* ugh */
++ assert(p->ssize >= len);
++
+ p->strip = (sop *)malloc(p->ssize * sizeof(sop));
+ p->slen = 0;
+ if (p->strip == NULL) {
Modified: trunk/packages/rcsb-core-wrapper/trunk/debian/patches/series
===================================================================
--- trunk/packages/rcsb-core-wrapper/trunk/debian/patches/series 2015-02-14 07:50:58 UTC (rev 18770)
+++ trunk/packages/rcsb-core-wrapper/trunk/debian/patches/series 2015-02-14 16:55:17 UTC (rev 18771)
@@ -11,3 +11,4 @@
spelling
exit-in-shlib
make_test_target
+regcomp_cert_fix.patch
More information about the debian-med-commit
mailing list