From 1fcb7ea28400aa69e157dc4b19c9667e96d3a033 Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Mon, 2 Jul 2018 12:53:55 +0200 Subject: efi_loader: check map_key in ExitBootServices The UEFI spec requires that the memory map key is checked in ExitBootServices(). Signed-off-by: Heinrich Schuchardt Signed-off-by: Alexander Graf --- lib/efi_loader/efi_boottime.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/efi_loader/efi_boottime.c') diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c index 86cb9ba479a..6bd64b9df9c 100644 --- a/lib/efi_loader/efi_boottime.c +++ b/lib/efi_loader/efi_boottime.c @@ -1854,6 +1854,10 @@ static efi_status_t EFIAPI efi_exit_boot_services(efi_handle_t image_handle, EFI_ENTRY("%p, %ld", image_handle, map_key); + /* Check that the caller has read the current memory map */ + if (map_key != efi_memory_map_key) + return EFI_INVALID_PARAMETER; + /* Make sure that notification functions are not called anymore */ efi_tpl = TPL_HIGH_LEVEL; -- cgit v1.2.3