[kernel] r12185 - in dists/etch-security/linux-2.6.24/debian: . patches/bugfix patches/series

Dann Frazier dannf at alioth.debian.org
Fri Sep 5 17:04:25 UTC 2008


Author: dannf
Date: Fri Sep  5 17:04:24 2008
New Revision: 12185

Log:
Fix kernel BUG in tmpfs (CVE-2008-3534)

Added:
   dists/etch-security/linux-2.6.24/debian/patches/bugfix/tmpfs-fix-kernel-bug-in-shmem_delete_inode.patch
Modified:
   dists/etch-security/linux-2.6.24/debian/changelog
   dists/etch-security/linux-2.6.24/debian/patches/series/6~etchnhalf.5

Modified: dists/etch-security/linux-2.6.24/debian/changelog
==============================================================================
--- dists/etch-security/linux-2.6.24/debian/changelog	(original)
+++ dists/etch-security/linux-2.6.24/debian/changelog	Fri Sep  5 17:04:24 2008
@@ -8,8 +8,9 @@
   * Fix integer overflow in dccp_setsockopt_change() (CVE-2008-3276)
   * Fix potential memory leak in lookup path (CVE-2008-3275)
   * Fix overflow condition in sctp_setsockopt_auth_key (CVE-2008-3526)
+  * Fix kernel BUG in tmpfs (CVE-2008-3534)
 
- -- dann frazier <dannf at debian.org>  Fri, 05 Sep 2008 10:12:32 -0600
+ -- dann frazier <dannf at debian.org>  Fri, 05 Sep 2008 10:52:43 -0600
 
 linux-2.6.24 (2.6.24-6~etchnhalf.4) stable; urgency=low
 

Added: dists/etch-security/linux-2.6.24/debian/patches/bugfix/tmpfs-fix-kernel-bug-in-shmem_delete_inode.patch
==============================================================================
--- (empty file)
+++ dists/etch-security/linux-2.6.24/debian/patches/bugfix/tmpfs-fix-kernel-bug-in-shmem_delete_inode.patch	Fri Sep  5 17:04:24 2008
@@ -0,0 +1,52 @@
+commit 14fcc23fdc78e9d32372553ccf21758a9bd56fa1
+Author: Hugh Dickins <hugh at veritas.com>
+Date:   Mon Jul 28 15:46:19 2008 -0700
+
+    tmpfs: fix kernel BUG in shmem_delete_inode
+    
+    SuSE's insserve initscript ordering program hits kernel BUG at mm/shmem.c:814
+    on 2.6.26.  It's using posix_fadvise on directories, and the shmem_readpage
+    method added in 2.6.23 is letting POSIX_FADV_WILLNEED allocate useless pages
+    to a tmpfs directory, incrementing i_blocks count but never decrementing it.
+    
+    Fix this by assigning shmem_aops (pointing to readpage and writepage and
+    set_page_dirty) only when it's needed, on a regular file or a long symlink.
+    
+    Many thanks to Kel for outstanding bugreport and steps to reproduce it.
+    
+    Reported-by: Kel Modderman <kel at otaku42.de>
+    Tested-by: Kel Modderman <kel at otaku42.de>
+    Signed-off-by: Hugh Dickins <hugh at veritas.com>
+    Cc: <stable at kernel.org>		[2.6.25.x, 2.6.26.x]
+    Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+    Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.24.orig/mm/shmem.c linux-source-2.6.24/mm/shmem.c
+--- linux-source-2.6.24.orig/mm/shmem.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/mm/shmem.c	2008-08-18 00:57:29.000000000 -0600
+@@ -1415,7 +1415,6 @@ shmem_get_inode(struct super_block *sb, 
+ 		inode->i_uid = current->fsuid;
+ 		inode->i_gid = current->fsgid;
+ 		inode->i_blocks = 0;
+-		inode->i_mapping->a_ops = &shmem_aops;
+ 		inode->i_mapping->backing_dev_info = &shmem_backing_dev_info;
+ 		inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
+ 		inode->i_generation = get_seconds();
+@@ -1430,6 +1429,7 @@ shmem_get_inode(struct super_block *sb, 
+ 			init_special_inode(inode, mode, dev);
+ 			break;
+ 		case S_IFREG:
++			inode->i_mapping->a_ops = &shmem_aops;
+ 			inode->i_op = &shmem_inode_operations;
+ 			inode->i_fop = &shmem_file_operations;
+ 			mpol_shared_policy_init(&info->policy, sbinfo->policy,
+@@ -1924,6 +1924,7 @@ static int shmem_symlink(struct inode *d
+ 			iput(inode);
+ 			return error;
+ 		}
++		inode->i_mapping->a_ops = &shmem_aops;
+ 		inode->i_op = &shmem_symlink_inode_operations;
+ 		kaddr = kmap_atomic(page, KM_USER0);
+ 		memcpy(kaddr, symname, len);

Modified: dists/etch-security/linux-2.6.24/debian/patches/series/6~etchnhalf.5
==============================================================================
--- dists/etch-security/linux-2.6.24/debian/patches/series/6~etchnhalf.5	(original)
+++ dists/etch-security/linux-2.6.24/debian/patches/series/6~etchnhalf.5	Fri Sep  5 17:04:24 2008
@@ -5,3 +5,4 @@
 + bugfix/dccp-change-l-r-must-have-at-least-one-byte-in-the-dccpsf_val-field.patch
 + bugfix/vfs-fix-lookup-on-deleted-directory.patch
 + bugfix/sctp-auth-key-length-check.patch
++ bugfix/tmpfs-fix-kernel-bug-in-shmem_delete_inode.patch



More information about the Kernel-svn-changes mailing list