block: don't create too many partitions
authorMing Lei <ming.lei@redhat.com>
Sat, 27 Mar 2021 07:13:09 +0000 (15:13 +0800)
committerJens Axboe <axboe@kernel.dk>
Sat, 27 Mar 2021 15:22:18 +0000 (09:22 -0600)
commite82fc7855749aa197740a60ef22c492c41ea5d5f
tree676ffbe3e79759503f9d360c6388483a14313086
parent7de55b7d6f09a2865279d3c41c0fbdbfdb87486a
block: don't create too many partitions

Commit a33df75c6328 ("block: use an xarray for disk->part_tbl") drops the
check on max supported number of partitionsr, and allows partition with
bigger partition numbers to be added. However, ->bd_partno is defined as
u8, so partition index of xarray table may not match with ->bd_partno.
Then delete_partition() may delete one unmatched partition, and caused
use-after-free.

Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reported-by: syzbot+8fede7e30c7cee0de139@syzkaller.appspotmail.com
Fixes: a33df75c6328 ("block: use an xarray for disk->part_tbl")
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/partitions/core.c