forked from mirrors/linux
		
	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: stable@vger.kernel.org Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Signed-off-by: Mike Snitzer <snitzer@kernel.org>
This commit is contained in:
		
							parent
							
								
									332bd07787
								
							
						
					
					
						commit
						1ebc2cec0b
					
				
					 1 changed files with 4 additions and 1 deletions
				
			
		| 
						 | 
					@ -7933,7 +7933,7 @@ static int raid5_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
 | 
				
			||||||
	int err = 0;
 | 
						int err = 0;
 | 
				
			||||||
	int number = rdev->raid_disk;
 | 
						int number = rdev->raid_disk;
 | 
				
			||||||
	struct md_rdev __rcu **rdevp;
 | 
						struct md_rdev __rcu **rdevp;
 | 
				
			||||||
	struct disk_info *p = conf->disks + number;
 | 
						struct disk_info *p;
 | 
				
			||||||
	struct md_rdev *tmp;
 | 
						struct md_rdev *tmp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	print_raid5_conf(conf);
 | 
						print_raid5_conf(conf);
 | 
				
			||||||
| 
						 | 
					@ -7952,6 +7952,9 @@ static int raid5_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
 | 
				
			||||||
		log_exit(conf);
 | 
							log_exit(conf);
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if (unlikely(number >= conf->pool_size))
 | 
				
			||||||
 | 
							return 0;
 | 
				
			||||||
 | 
						p = conf->disks + number;
 | 
				
			||||||
	if (rdev == rcu_access_pointer(p->rdev))
 | 
						if (rdev == rcu_access_pointer(p->rdev))
 | 
				
			||||||
		rdevp = &p->rdev;
 | 
							rdevp = &p->rdev;
 | 
				
			||||||
	else if (rdev == rcu_access_pointer(p->replacement))
 | 
						else if (rdev == rcu_access_pointer(p->replacement))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue