Re: [PATCH V2] block: no show partitions if partno corrupted
From: Jens Axboe
Date: Tue Jan 14 2025 - 09:16:46 EST
On 1/14/25 1:51 AM, Edward Adam Davis wrote:
> diff --git a/block/genhd.c b/block/genhd.c
> index 9130e163e191..8d539a4a3b37 100644
> --- a/block/genhd.c
> +++ b/block/genhd.c
> @@ -890,7 +890,9 @@ static int show_partition(struct seq_file *seqf, void *v)
>
> rcu_read_lock();
> xa_for_each(&sgp->part_tbl, idx, part) {
> - if (!bdev_nr_sectors(part))
> + int partno = bdev_partno(part);
> +
> + if (!bdev_nr_sectors(part) || WARN_ON(partno >= DISK_MAX_PARTS))
> continue;
> seq_printf(seqf, "%4d %7d %10llu %pg\n",
> MAJOR(part->bd_dev), MINOR(part->bd_dev),
This should be a WARN_ON_ONCE(), and please put warn-on's on a separate
line.
--
Jens Axboe