[arch-commits] CVS update of extra/system/unzip (2 files)

Dan McGee dan at archlinux.org
Sat Apr 5 14:05:10 UTC 2008


    Date: Saturday, April 5, 2008 @ 10:05:10
  Author: dan
    Path: /home/cvs-extra/extra/system/unzip

   Added: unzip-5.5.2-CVE-2008-0888.patch (1.1)
Modified: PKGBUILD (1.16 -> 1.17)

upgpkg: unzip 5.52-4


---------------------------------+
 PKGBUILD                        |    9 +++++-
 unzip-5.5.2-CVE-2008-0888.patch |   50 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+), 2 deletions(-)


Index: extra/system/unzip/PKGBUILD
diff -u extra/system/unzip/PKGBUILD:1.16 extra/system/unzip/PKGBUILD:1.17
--- extra/system/unzip/PKGBUILD:1.16	Sat Nov 17 21:02:47 2007
+++ extra/system/unzip/PKGBUILD	Sat Apr  5 10:05:09 2008
@@ -1,24 +1,29 @@
-# $Id: PKGBUILD,v 1.16 2007/11/18 02:02:47 eric Exp $
+# $Id: PKGBUILD,v 1.17 2008/04/05 14:05:09 dan Exp $
 # Maintainer: Dan McGee <dan at archlinux.org>
 
 pkgname=unzip
 pkgver=5.52
-pkgrel=3
+pkgrel=4
 pkgdesc="Unpacks .zip archives such as those made by PKZIP"
 arch=('i686' 'x86_64')
 url="http://www.info-zip.org/"
 license=('custom')
 depends=('glibc')
 source=(http://downloads.sourceforge.net/infozip/unzip552.tar.gz
+        unzip-5.5.2-CVE-2008-0888.patch
         unzip-5.50-alt-iconv-v1.2-utf8.patch
         unzip542-size-64bit.patch)
 md5sums=('9d23919999d6eac9217d1f41472034a9'
+         '2de357c2ba84576f38b17aed87915c87'
          'a4797a1f6e45385f5e021f9f6f2ec0fa'
          '83c7e79de9618bf7d081dd639dd3dde1')
 
 build() {
   cd $startdir/src/$pkgname-$pkgver
 
+  # http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-0888
+  patch -Np0 -i ../unzip-5.5.2-CVE-2008-0888.patch || return 1
+
   # FS#8383
   patch -Np1 -i ../unzip-5.50-alt-iconv-v1.2-utf8.patch || return 1
 
Index: extra/system/unzip/unzip-5.5.2-CVE-2008-0888.patch
diff -u /dev/null extra/system/unzip/unzip-5.5.2-CVE-2008-0888.patch:1.1
--- /dev/null	Sat Apr  5 10:05:10 2008
+++ extra/system/unzip/unzip-5.5.2-CVE-2008-0888.patch	Sat Apr  5 10:05:09 2008
@@ -0,0 +1,50 @@
+--- inflate.c	2005-02-27 06:08:46.000000000 +0000
++++ inflate.c	2006-07-19 21:45:33.543595000 +0100
+@@ -983,6 +983,7 @@
+   unsigned l;           /* last length */
+   unsigned m;           /* mask for bit lengths table */
+   unsigned n;           /* number of lengths to get */
++  struct huft *tlp;     
+   struct huft *tl;      /* literal/length code table */
+   struct huft *td;      /* distance code table */
+   unsigned bl;          /* lookup bits for tl */
+@@ -996,6 +997,8 @@
+   int retval = 0;       /* error code returned: initialized to "no error" */
+ 
+ 
++  td = tlp = tl = (struct huft *)NULL;
++
+   /* make local bit buffer */
+   Trace((stderr, "\ndynamic block"));
+   b = G.bb;
+@@ -1047,9 +1050,9 @@
+   while (i < n)
+   {
+     NEEDBITS(bl)
+-    j = (td = tl + ((unsigned)b & m))->b;
++    j = (tlp = tl + ((unsigned)b & m))->b;
+     DUMPBITS(j)
+-    j = td->v.n;
++    j = tlp->v.n;
+     if (j < 16)                 /* length of code in bits (0..15) */
+       ll[i++] = l = j;          /* save last length in l */
+     else if (j == 16)           /* repeat last length 3 to 6 times */
+@@ -1141,6 +1144,7 @@
+       huft_free(td);
+     }
+     huft_free(tl);
++
+     return retval;
+   }
+ 
+@@ -1149,8 +1153,8 @@
+ 
+ cleanup_and_exit:
+   /* free the decoding tables, return */
+-  huft_free(tl);
+-  huft_free(td);
++  if (tl) huft_free(tl);
++  if (td) huft_free(td);
+   return retval;
+ }
+ 




More information about the arch-commits mailing list