diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 1919de4c8c12..f96e07945470 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -1808,6 +1808,10 @@ static int raid1_remove_disk(struct mddev *mddev, struct md_rdev *rdev) struct r1conf *conf = mddev->private; int err = 0; int number = rdev->raid_disk; + + if (unlikely(number >= conf->raid_disks)) + goto abort; + struct raid1_info *p = conf->mirrors + number; if (rdev != p->rdev)