]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
raid6check: Fix off-by-one in argument check
authorRobert Buchholz <rbu@goodpoint.de>
Thu, 19 Jul 2012 15:14:47 +0000 (17:14 +0200)
committerNeilBrown <neilb@suse.de>
Mon, 10 Sep 2012 07:23:59 +0000 (17:23 +1000)
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>
raid6check.c

index aba8160f6e5c51058bc6a4248d223da5e5ae92a2..dffadbe3235a04338bc1d2e1e192e284686cd9bf 100644 (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;