mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	efi_loader: Exit in efi_set_bootdev() upon invalid "desc"
When trying to load an image from a non-existent USB key, U-Boot v2017.11 crashes on my x86 platform: => load usb 0:1 03000000 abc General Protection EIP: 0010:[<7b59030d>] EFLAGS: 00010286 Original EIP :[<fff4330d>] ... This used to work in v2017.09. Testing has shown, that this bug was introduced with patch 95c5553e [efi_loader: refactor boot device and loaded_image handling]. This patch now checks if a valid "desc" is returned from blk_get_dev() and only continues when "desc" is available. Resulting in this cmd output (again): => load usb 0:1 03000000 abc ** Bad device usb 0 ** Signed-off-by: Stefan Roese <sr@denx.de> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
		
							parent
							
								
									362f00f979
								
							
						
					
					
						commit
						8300be612c
					
				@ -436,6 +436,8 @@ void efi_set_bootdev(const char *dev, const char *devnr, const char *path)
 | 
				
			|||||||
		int part;
 | 
							int part;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		desc = blk_get_dev(dev, simple_strtol(devnr, NULL, 10));
 | 
							desc = blk_get_dev(dev, simple_strtol(devnr, NULL, 10));
 | 
				
			||||||
 | 
							if (!desc)
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
		part = parse_partnum(devnr);
 | 
							part = parse_partnum(devnr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		bootefi_device_path = efi_dp_from_part(desc, part);
 | 
							bootefi_device_path = efi_dp_from_part(desc, part);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user