Skip to content

Commit 1ebc2ce

Browse files
Mikulas PatockaMike Snitzer
authored andcommitted
dm raid: fix KASAN warning in raid5_remove_disk
There's a KASAN warning in raid5_remove_disk when running the LVM testsuite. We fix this warning by verifying that the "number" variable is within limits. Cc: [email protected] Signed-off-by: Mikulas Patocka <[email protected]> Signed-off-by: Mike Snitzer <[email protected]>
1 parent 332bd07 commit 1ebc2ce

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

drivers/md/raid5.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7933,7 +7933,7 @@ static int raid5_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
79337933
int err = 0;
79347934
int number = rdev->raid_disk;
79357935
struct md_rdev __rcu **rdevp;
7936-
struct disk_info *p = conf->disks + number;
7936+
struct disk_info *p;
79377937
struct md_rdev *tmp;
79387938

79397939
print_raid5_conf(conf);
@@ -7952,6 +7952,9 @@ static int raid5_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
79527952
log_exit(conf);
79537953
return 0;
79547954
}
7955+
if (unlikely(number >= conf->pool_size))
7956+
return 0;
7957+
p = conf->disks + number;
79557958
if (rdev == rcu_access_pointer(p->rdev))
79567959
rdevp = &p->rdev;
79577960
else if (rdev == rcu_access_pointer(p->replacement))

0 commit comments

Comments
 (0)