All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: Michael Schmitz <schmitzmic@gmail.com>
Cc: linux-block@vger.kernel.org, axboe@kernel.dk,
	linux-m68k@vger.kernel.org, geert@linux-m68k.org
Subject: Re: [PATCH v8 2/2] block: add overflow checks for Amiga partition support
Date: Tue, 26 Jul 2022 04:42:56 -0700	[thread overview]
Message-ID: <Yt/TQOJQZEhZE+2p@infradead.org> (raw)
In-Reply-To: <20220726045747.4779-3-schmitzmic@gmail.com>

On Tue, Jul 26, 2022 at 04:57:47PM +1200, Michael Schmitz wrote:
> The Amiga partition parser module uses signed int for partition sector
> address and count, which will overflow for disks larger than 1 TB.
> 
> Use u64 as type for sector address and size to allow using disks up to
> 2 TB without LBD support, and disks larger than 2 TB with LBD. The RBD
> format allows to specify disk sizes up to 2^128 bytes (though native
> OS limitations reduce this somewhat, to max 2^68 bytes), so check for
> u64 overflow carefully to protect against overflowing sector_t.
> 
> Bail out if sector addresses overflow 32 bits on kernels without LBD
> support.
> 
> This bug was reported originally in 2012, and the fix was created by
> the RDB author, Joanne Dow <jdow@earthlink.net>. A patch had been
> discussed and reviewed on linux-m68k at that time but never officially
> submitted (now resubmitted as separate patch).
> This patch adds additional error checking and warning messages.
> 
> Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=43511
> Reported-by: Martin Steigerwald <Martin@lichtvoll.de>
> Message-ID: <201206192146.09327.Martin@lichtvoll.de>
> Signed-off-by: Michael Schmitz <schmitzmic@gmail.com>
> Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
> ---
>  block/partitions/amiga.c | 111 +++++++++++++++++++++++++++++++--------
>  1 file changed, 89 insertions(+), 22 deletions(-)
> 
> diff --git a/block/partitions/amiga.c b/block/partitions/amiga.c
> index f98191545d9a..7356b39cbe10 100644
> --- a/block/partitions/amiga.c
> +++ b/block/partitions/amiga.c
> @@ -11,10 +11,18 @@
>  #define pr_fmt(fmt) fmt
>  
>  #include <linux/types.h>
> +#include <linux/mm_types.h>
> +#include <linux/overflow.h>
>  #include <linux/affs_hardblocks.h>
>  
>  #include "check.h"
>  
> +/* magic offsets in partition DosEnvVec */
> +#define NR_HD	3
> +#define NR_SECT	5
> +#define LO_CYL	9
> +#define	HI_CYL	10

The last line has a tab after the #define while the previous three
don't.  Pick one style and stick to it for the others.

>  		if (!data) {
> -			pr_err("Dev %s: unable to read RDB block %d\n",
> -			       state->disk->disk_name, blk);
> +			pr_err("Dev %s: unable to read RDB block %llu\n",
> +			       state->disk->disk_name, (u64) blk);

No need for the various printk casts, a sector_t is always an
unsigned long long.

  reply	other threads:[~2022-07-26 11:43 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-26  4:57 [PATCH v8 0/2] Amiga RDB partition support fixes Michael Schmitz
2022-07-26  4:57 ` [PATCH v8 1/2] block: fix signed int overflow in Amiga partition support Michael Schmitz
2022-07-26 11:41   ` Christoph Hellwig
2022-07-26  4:57 ` [PATCH v8 2/2] block: add overflow checks for " Michael Schmitz
2022-07-26 11:42   ` Christoph Hellwig [this message]
2022-07-26 22:28     ` Michael Schmitz
2022-08-11 11:40     ` Geert Uytterhoeven
2022-08-22 20:38       ` Michael Schmitz
2022-08-22 21:03         ` Geert Uytterhoeven
2022-08-22 21:09           ` Michael Schmitz
2022-07-26 12:53   ` kernel test robot

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=Yt/TQOJQZEhZE+2p@infradead.org \
    --to=hch@infradead.org \
    --cc=axboe@kernel.dk \
    --cc=geert@linux-m68k.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-m68k@vger.kernel.org \
    --cc=schmitzmic@gmail.com \
    /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.