From: Ben Hutchings <ben@decadent.org.uk>
To: linux-kernel@vger.kernel.org
Cc: Eric Sesterhenn <snakebyte@gmx.de>,
Roman Zippel <zippel@linux-m68k.org>,
550010@bugs.debian.org
Subject: [PATCH] hfsplus: Refuse to mount volumes larger than 2TB
Date: Sun, 11 Oct 2009 03:11:27 +0100 [thread overview]
Message-ID: <1255227087.25061.76.camel@localhost> (raw)
In-Reply-To: <1254883878.4246.191.camel@localhost>
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@decadent.org.uk>
Cc: stable@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.
next prev parent reply other threads:[~2009-10-11 2:12 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-07 2:51 hfsplus corrupts filesystems >2TB Ben Hutchings
2009-10-11 2:11 ` Ben Hutchings [this message]
2009-10-11 7:51 ` [PATCH] hfsplus: Refuse to mount volumes larger than 2TB Andrew Morton
2009-10-11 17:01 ` Ben Hutchings
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1255227087.25061.76.camel@localhost \
--to=ben@decadent.org.uk \
--cc=550010@bugs.debian.org \
--cc=linux-kernel@vger.kernel.org \
--cc=snakebyte@gmx.de \
--cc=zippel@linux-m68k.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.