[kernel] r14372 - in dists/lenny/linux-2.6/debian: . patches/bugfix/all patches/series

Ben Hutchings benh at alioth.debian.org
Sun Oct 11 02:16:54 UTC 2009


Author: benh
Date: Sun Oct 11 02:16:52 2009
New Revision: 14372

Log:
hfsplus: Refuse to mount volumes larger than 2TB, which may otherwise be corrupted (Closes: #550010)

Added:
   dists/lenny/linux-2.6/debian/patches/bugfix/all/hfsplus-limit-to-2tb.patch
Modified:
   dists/lenny/linux-2.6/debian/changelog
   dists/lenny/linux-2.6/debian/patches/series/20

Modified: dists/lenny/linux-2.6/debian/changelog
==============================================================================
--- dists/lenny/linux-2.6/debian/changelog	Sun Oct 11 02:13:12 2009	(r14371)
+++ dists/lenny/linux-2.6/debian/changelog	Sun Oct 11 02:16:52 2009	(r14372)
@@ -21,6 +21,8 @@
   * Sanitise <linux/socket.h> and <linux/uio.h> (Closes: #538372)
   * nfs: Handle -ESTALE error in access() (Closes: #508866)
   * r8169: Fix rx_missed_errors statistic (Closes: #531932)
+  * hfsplus: Refuse to mount volumes larger than 2TB, which may otherwise
+    be corrupted (Closes: #550010)
 
   [ dann frazier ]
   * autofs4: don't make expiring dentry negative, avoiding an oops

Added: dists/lenny/linux-2.6/debian/patches/bugfix/all/hfsplus-limit-to-2tb.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/lenny/linux-2.6/debian/patches/bugfix/all/hfsplus-limit-to-2tb.patch	Sun Oct 11 02:16:52 2009	(r14372)
@@ -0,0 +1,36 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Subject: [PATCH] hfsplus: Refuse to mount volumes larger than 2TB
+
+As found in <http://bugs.debian.org/550010>, hfsplus is using type u32
+rather than sector_t for some sector number calculations.
+
+In particular, hfsplus_get_block() does:
+
+        u32 ablock, dblock, mask;
+...
+        map_bh(bh_result, sb, (dblock << HFSPLUS_SB(sb).fs_shift) + HFSPLUS_SB(sb).blockoffset + (iblock & mask));
+
+I am not confident that I can find and fix all cases where a sector
+number may be truncated.  For now, avoid data loss by refusing to mount
+HFS+ volumes with more than 2^32 sectors (2TB).
+
+Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
+Cc: stable at kernel.org
+---
+--- a/fs/hfsplus/wrapper.c
++++ b/fs/hfsplus/wrapper.c
+@@ -99,6 +99,10 @@
+ 
+ 	if (hfsplus_get_last_session(sb, &part_start, &part_size))
+ 		return -EINVAL;
++	if (part_start + part_size > 0x100000000) {
++		pr_err("hfs: volumes larger than 2TB are not supported yet\n");
++		return -EINVAL;
++	}
+ 	while (1) {
+ 		bh = sb_bread512(sb, part_start + HFSPLUS_VOLHEAD_SECTOR, vhdr);
+ 		if (!bh)
+
+-- 
+Ben Hutchings
+Quantity is no substitute for quality, but it's the only one we've got.

Modified: dists/lenny/linux-2.6/debian/patches/series/20
==============================================================================
--- dists/lenny/linux-2.6/debian/patches/series/20	Sun Oct 11 02:13:12 2009	(r14371)
+++ dists/lenny/linux-2.6/debian/patches/series/20	Sun Oct 11 02:16:52 2009	(r14372)
@@ -14,4 +14,5 @@
 + bugfix/all/sanitise-linux-uio-h.patch
 + bugfix/all/nfs-handle-ESTALE-error-in-access.patch
 + bugfix/all/r8169-fix-rx_missed_errors.patch
++ bugfix/all/hfsplus-limit-to-2tb.patch
 + features/all/ftdi_sio-openrd.patch



More information about the Kernel-svn-changes mailing list