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
@ -251,6 +251,8 @@ struct efi_rt_properties_table {
|
||||
u32 runtime_services_supported;
|
||||
};
|
||||
|
||||
#define EFI_OPTIONAL_PTR 0x00000001
|
||||
|
||||
struct efi_runtime_services {
|
||||
struct efi_table_hdr hdr;
|
||||
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;
|
||||
goto out;
|
||||
}
|
||||
if (!*address) {
|
||||
if (debug_disposition & EFI_OPTIONAL_PTR)
|
||||
return EFI_SUCCESS;
|
||||
else
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
addr = (uintptr_t)*address;
|
||||
for (i = 0; i < efi_descriptor_count; i++) {
|
||||
|
Loading…
Reference in New Issue
Block a user