mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	rtc: class: check return value when calling dev_set_name()
I got a null-ptr-deref report when doing fault injection test: BUG: kernel NULL pointer dereference, address: 0000000000000000 RIP: 0010:strcmp+0xc/0x20 Call Trace: __devm_rtc_register_device.cold.7+0x16a/0x2df rv3029_probe+0x4b1/0x770 [rtc_rv3029c2] rv3029_i2c_probe+0x141/0x180 [rtc_rv3029c2] i2c_device_probe+0xa07/0xbb0 really_probe+0x285/0xc30 If dev_set_name() fails, dev_name() is null, it causes null-ptr-deref, we need check the return value of dev_set_name(). Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Link: https://lore.kernel.org/r/20211012041629.2504158-1-yangyingliang@huawei.com
This commit is contained in:
		
							parent
							
								
									789c1093f0
								
							
						
					
					
						commit
						24d23181e4
					
				
					 1 changed files with 3 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -364,7 +364,9 @@ struct rtc_device *devm_rtc_allocate_device(struct device *dev)
 | 
			
		|||
 | 
			
		||||
	rtc->id = id;
 | 
			
		||||
	rtc->dev.parent = dev;
 | 
			
		||||
	dev_set_name(&rtc->dev, "rtc%d", id);
 | 
			
		||||
	err = dev_set_name(&rtc->dev, "rtc%d", id);
 | 
			
		||||
	if (err)
 | 
			
		||||
		return ERR_PTR(err);
 | 
			
		||||
 | 
			
		||||
	err = devm_add_action_or_reset(dev, devm_rtc_release_device, rtc);
 | 
			
		||||
	if (err)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue