mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-01 00:45:43 +00:00
efi_loader: optional pointer for ConvertPointer
If the EFI_OPTIONAL_PTR is set in DebugDisposition, a NULL pointer does not constitute an invalid parameter. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
parent
a44d2a2399
commit
724d28171e
2 changed files with 8 additions and 0 deletions
|
@ -251,6 +251,8 @@ struct efi_rt_properties_table {
|
||||||
u32 runtime_services_supported;
|
u32 runtime_services_supported;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define EFI_OPTIONAL_PTR 0x00000001
|
||||||
|
|
||||||
struct efi_runtime_services {
|
struct efi_runtime_services {
|
||||||
struct efi_table_hdr hdr;
|
struct efi_table_hdr hdr;
|
||||||
efi_status_t (EFIAPI *get_time)(struct efi_time *time,
|
efi_status_t (EFIAPI *get_time)(struct efi_time *time,
|
||||||
|
|
|
@ -512,6 +512,12 @@ efi_convert_pointer(efi_uintn_t debug_disposition, void **address)
|
||||||
ret = EFI_INVALID_PARAMETER;
|
ret = EFI_INVALID_PARAMETER;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
if (!*address) {
|
||||||
|
if (debug_disposition & EFI_OPTIONAL_PTR)
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
else
|
||||||
|
return EFI_INVALID_PARAMETER;
|
||||||
|
}
|
||||||
|
|
||||||
addr = (uintptr_t)*address;
|
addr = (uintptr_t)*address;
|
||||||
for (i = 0; i < efi_descriptor_count; i++) {
|
for (i = 0; i < efi_descriptor_count; i++) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue