mirror of
				https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux
				synced 2025-11-04 16:52:06 +10:00 
			
		
		
		
	led: gpio: Fix possible ZERO_SIZE_PTR pointer dereferencing error.
Since we cannot make sure the 'pdata->num_leds' will always be none zero here, and then if it equals to zero, the kmemdup() will return ZERO_SIZE_PTR, which equals to ((void *)16). So this patch fix this with just doing the zero check before calling kmemdup(). Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Bryan Wu <cooloney@gmail.com>
This commit is contained in:
		
							parent
							
								
									4cc72346f0
								
							
						
					
					
						commit
						a823e76138
					
				@ -28,6 +28,9 @@ struct platform_device *__init gpio_led_register_device(
 | 
			
		||||
	struct platform_device *ret;
 | 
			
		||||
	struct gpio_led_platform_data _pdata = *pdata;
 | 
			
		||||
 | 
			
		||||
	if (!pdata->num_leds)
 | 
			
		||||
		return ERR_PTR(-EINVAL);
 | 
			
		||||
 | 
			
		||||
	_pdata.leds = kmemdup(pdata->leds,
 | 
			
		||||
			pdata->num_leds * sizeof(*pdata->leds), GFP_KERNEL);
 | 
			
		||||
	if (!_pdata.leds)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user