boot1: also check for NULL device
r325681 fixed a NULL pointer dereference on RPi3 caused by a lack of functionality in uboot's EFI implementation. That rev checked the boot1 load path for NULL but not the load device. In practice if the former works the latter will as well, but improve correctness by checking each separately. Submitted by: Keith White <kwhite@eecs.uottawa.ca> Reported by: jhb MFC after: 5 days MFC with: r325681 Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
175748c982
commit
1ec7755286
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=325744
@ -464,14 +464,16 @@ efi_main(EFI_HANDLE Ximage, EFI_SYSTEM_TABLE *Xsystab)
|
||||
printf(" Load Path: %S\n", text);
|
||||
efi_setenv_freebsd_wcs("Boot1Path", text);
|
||||
efi_free_devpath_name(text);
|
||||
}
|
||||
|
||||
status = BS->HandleProtocol(img->DeviceHandle,
|
||||
&DevicePathGUID, (void **)&imgpath);
|
||||
if (status != EFI_SUCCESS) {
|
||||
DPRINTF("Failed to get image DevicePath (%lu)\n",
|
||||
EFI_ERROR_CODE(status));
|
||||
} else {
|
||||
text = efi_devpath_name(imgpath);
|
||||
status = BS->HandleProtocol(img->DeviceHandle, &DevicePathGUID,
|
||||
(void **)&imgpath);
|
||||
if (status != EFI_SUCCESS) {
|
||||
DPRINTF("Failed to get image DevicePath (%lu)\n",
|
||||
EFI_ERROR_CODE(status));
|
||||
} else {
|
||||
text = efi_devpath_name(imgpath);
|
||||
if (text != NULL) {
|
||||
printf(" Load Device: %S\n", text);
|
||||
efi_setenv_freebsd_wcs("Boot1Dev", text);
|
||||
efi_free_devpath_name(text);
|
||||
|
Loading…
Reference in New Issue
Block a user