r3881 - in trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian: . patches patches/series

Simon Horman horms at costa.debian.org
Mon Aug 15 09:38:57 UTC 2005


Author: horms
Date: 2005-08-15 09:38:56 +0000 (Mon, 15 Aug 2005)
New Revision: 3881

Added:
   trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/zisofs.dpatch
Modified:
   trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog
   trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/series/2.6.8-17
Log:
  * zisofs.dpatch
    Check input buffer size in zisofs
    From 2.6.12.5


Modified: trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog
===================================================================
--- trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog	2005-08-15 09:34:41 UTC (rev 3880)
+++ trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog	2005-08-15 09:38:56 UTC (rev 3881)
@@ -191,11 +191,16 @@
   * linux-zlib-fixes.dpatch
     [Security] Fix security bugs in the Linux zlib implementations.
     See CAN-2005-2458, CAN-2005-2459
+    From 2.6.12.5
     http://sources.redhat.com/ml/bug-gnu-utils/1999-06/msg00183.html
     http://bugs.gentoo.org/show_bug.cgi?id=94584
 
- -- Simon Horman <horms at debian.org>  Mon, 15 Aug 2005 18:31:47 +0900
+  * zisofs.dpatch
+    Check input buffer size in zisofs
+    From 2.6.12.5
 
+ -- Simon Horman <horms at debian.org>  Mon, 15 Aug 2005 18:36:45 +0900
+
 kernel-source-2.6.8 (2.6.8-16) unstable; urgency=low
 
   * smbfs-overrun.dpatch:

Modified: trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/series/2.6.8-17
===================================================================
--- trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/series/2.6.8-17	2005-08-15 09:34:41 UTC (rev 3880)
+++ trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/series/2.6.8-17	2005-08-15 09:38:56 UTC (rev 3881)
@@ -51,3 +51,4 @@
 + arch-x86_64-nmi.dpatch
 + arch-x86_64-kernel-stack-faults.dpatch
 + linux-zlib-fixes.dpatch
++ zisofs.dpatch

Added: trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/zisofs.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/zisofs.dpatch	2005-08-15 09:34:41 UTC (rev 3880)
+++ trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/zisofs.dpatch	2005-08-15 09:38:56 UTC (rev 3881)
@@ -0,0 +1,62 @@
+From torvalds at osdl.org  Sat Aug  6 11:33:12 2005
+Date: Sat, 6 Aug 2005 11:33:11 -0700 (PDT)
+From: Linus Torvalds <torvalds at osdl.org>
+To: Tim Yamin <plasmaroo at gentoo.org>
+cc: "H. Peter Anvin" <hpa at zytor.com>, Chris Wright <chrisw at osdl.org>,
+        security at kernel.org
+Subject: Check input buffer size in zisofs
+
+Add fakey 'deflateBound()' function to the in-kernel zlib routines
+
+It's not the real deflateBound() in newer zlib libraries, partly because
+the upcoming usage of it won't have the "stream" available, so we can't
+have the same interfaces anyway.
+
+This uses the new deflateBound() thing to sanity-check the input to the
+zlib decompressor before we even bother to start reading in the blocks.
+
+Problem noted by Tim Yamin <plasmaroo at gentoo.org>
+
+Signed-off-by: Chris Wright <chrisw at osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+Signed-off-by: H. Peter Anvin <hpa at zytor.com>
+---
+ fs/isofs/compress.c  |    6 ++++++
+ include/linux/zlib.h |    5 +++++
+ 2 files changed, 11 insertions(+)
+
+Index: linux-2.6.12.y/include/linux/zlib.h
+===================================================================
+--- linux-2.6.12.y.orig/include/linux/zlib.h
++++ linux-2.6.12.y/include/linux/zlib.h
+@@ -506,6 +506,11 @@ extern int zlib_deflateReset (z_streamp 
+    stream state was inconsistent (such as zalloc or state being NULL).
+ */
+ 
++static inline unsigned long deflateBound(unsigned long s)
++{
++	return s + ((s + 7) >> 3) + ((s + 63) >> 6) + 11;
++}
++
+ extern int zlib_deflateParams (z_streamp strm, int level, int strategy);
+ /*
+      Dynamically update the compression level and compression strategy.  The
+Index: linux-2.6.12.y/fs/isofs/compress.c
+===================================================================
+--- linux-2.6.12.y.orig/fs/isofs/compress.c
++++ linux-2.6.12.y/fs/isofs/compress.c
+@@ -129,8 +129,14 @@ static int zisofs_readpage(struct file *
+ 	cend = le32_to_cpu(*(__le32 *)(bh->b_data + (blockendptr & bufmask)));
+ 	brelse(bh);
+ 
++	if (cstart > cend)
++		goto eio;
++		
+ 	csize = cend-cstart;
+ 
++	if (csize > deflateBound(1UL << zisofs_block_shift))
++		goto eio;
++
+ 	/* Now page[] contains an array of pages, any of which can be NULL,
+ 	   and the locks on which we hold.  We should now read the data and
+ 	   release the pages.  If the pages are NULL the decompressed data




More information about the Kernel-svn-changes mailing list