kernel/drivers/md/raid1.c
.. .. @@ -1793,6 +1793,9 @@ 1793 1793 int number = rdev->raid_disk; 1794 1794 struct raid1_info *p = conf->mirrors + number; 1795 1795 1796 + if (unlikely(number >= conf->raid_disks))1797 + goto abort;1798 +1796 1799 if (rdev != p->rdev) 1797 1800 p = conf->mirrors + conf->raid_disks + number; 1798 1801 .. .. @@ -3115,6 +3118,7 @@ 3115 3118 * RAID1 needs at least one disk in active 3116 3119 */ 3117 3120 if (conf->raid_disks - mddev->degraded < 1) { 3121 + md_unregister_thread(&conf->thread);3118 3122 ret = -EINVAL; 3119 3123 goto abort; 3120 3124 }