efi/libstub: arm64: Warn when efi_random_alloc() fails
authorArd Biesheuvel <ardb@kernel.org>
Mon, 26 Jul 2021 14:24:01 +0000 (16:24 +0200)
committerArd Biesheuvel <ardb@kernel.org>
Tue, 3 Aug 2021 05:43:07 +0000 (07:43 +0200)
Randomization of the physical load address of the kernel image relies on
efi_random_alloc() returning successfully, and currently, we ignore any
failures and just carry on, using the ordinary, non-randomized page
allocator routine. This means we never find out if a failure occurs,
which could harm security, so let's at least warn about this condition.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Tested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
drivers/firmware/efi/libstub/arm64-stub.c

index 6f214c9..010564f 100644 (file)
@@ -130,6 +130,8 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
                 */
                status = efi_random_alloc(*reserve_size, min_kimg_align,
                                          reserve_addr, phys_seed);
+               if (status != EFI_SUCCESS)
+                       efi_warn("efi_random_alloc() failed: 0x%lx\n", status);
        } else {
                status = EFI_OUT_OF_RESOURCES;
        }