[kernel] r14371 - in dists/sid/linux-2.6/debian: . patches/bugfix/all patches/series
Ben Hutchings
benh at alioth.debian.org
Sun Oct 11 02:13:14 UTC 2009
Author: benh
Date: Sun Oct 11 02:13:12 2009
New Revision: 14371
Log:
hfsplus: Refuse to mount volumes larger than 2TB, which may otherwise be corrupted (Closes: #550010)
Added:
dists/sid/linux-2.6/debian/patches/bugfix/all/hfsplus-limit-to-2tb.patch
Modified:
dists/sid/linux-2.6/debian/changelog
dists/sid/linux-2.6/debian/patches/series/9
Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog Sat Oct 10 01:26:47 2009 (r14370)
+++ dists/sid/linux-2.6/debian/changelog Sun Oct 11 02:13:12 2009 (r14371)
@@ -5,6 +5,8 @@
- ax25: Fix signed comparison in the sockopt handler (CVE-2009-2909)
- KVM: x86: Disallow hypercalls for guest callers in rings > 0
(CVE-2009-3290)
+ * hfsplus: Refuse to mount volumes larger than 2TB, which may otherwise
+ be corrupted (Closes: #550010)
-- Ben Hutchings <ben at decadent.org.uk> Thu, 08 Oct 2009 02:31:31 +0100
Added: dists/sid/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/sid/linux-2.6/debian/patches/bugfix/all/hfsplus-limit-to-2tb.patch Sun Oct 11 02:13:12 2009 (r14371)
@@ -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/sid/linux-2.6/debian/patches/series/9
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/9 Sat Oct 10 01:26:47 2009 (r14370)
+++ dists/sid/linux-2.6/debian/patches/series/9 Sun Oct 11 02:13:12 2009 (r14371)
@@ -1,3 +1,4 @@
- bugfix/all/fix-proc-uptime-idle-time.patch
+ bugfix/all/stable/2.6.30.9.patch
+ bugfix/all/revert-pcmcia-abi-change.patch
++ bugfix/all/hfsplus-limit-to-2tb.patch
More information about the Kernel-svn-changes
mailing list