raid6check: Fix off-by-one in argument check

In repair mode, specifying a failed slot that is equal to the number of
devices in the raid could cause a segfault.

Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
Robert Buchholz 2012-07-19 17:14:47 +02:00 committed by NeilBrown
parent 1cc101f3f8
commit b67e45b858
1 changed files with 2 additions and 2 deletions

View File

@ -416,12 +416,12 @@ int main(int argc, char *argv[])
failed_disk1 = getnum(argv[4], &err);
failed_disk2 = getnum(argv[5], &err);
if(failed_disk1 > info->array.raid_disks) {
if(failed_disk1 >= info->array.raid_disks) {
fprintf(stderr, "%s: failed_slot_1 index is higher than number of devices in raid\n", prg);
exit_err = 4;
goto exitHere;
}
if(failed_disk2 > info->array.raid_disks) {
if(failed_disk2 >= info->array.raid_disks) {
fprintf(stderr, "%s: failed_slot_2 index is higher than number of devices in raid\n", prg);
exit_err = 4;
goto exitHere;