]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
efi: runtime: Fix potential overflow of soft-reserved region size
authorAndrew Bresticker <abrestic@rivosinc.com>
Fri, 2 Feb 2024 18:07:03 +0000 (10:07 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 Mar 2024 12:16:45 +0000 (13:16 +0100)
[ Upstream commit de1034b38a346ef6be25fe8792f5d1e0684d5ff4 ]

md_size will have been narrowed if we have >= 4GB worth of pages in a
soft-reserved region.

Signed-off-by: Andrew Bresticker <abrestic@rivosinc.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/firmware/efi/arm-runtime.c
drivers/firmware/efi/riscv-runtime.c

index 3359ae2adf24ba93ba8511f79bfc5ba1198d63ef..9054c2852580dabb00c3fc20dca7de5e78f211c3 100644 (file)
@@ -107,7 +107,7 @@ static int __init arm_enable_runtime_services(void)
                efi_memory_desc_t *md;
 
                for_each_efi_memory_desc(md) {
-                       int md_size = md->num_pages << EFI_PAGE_SHIFT;
+                       u64 md_size = md->num_pages << EFI_PAGE_SHIFT;
                        struct resource *res;
 
                        if (!(md->attribute & EFI_MEMORY_SP))
index d28e715d2bcc8b33ffe4b90a16305dc99448b279..6711e64eb0b168d84311b1c136b04ee61cd8e093 100644 (file)
@@ -85,7 +85,7 @@ static int __init riscv_enable_runtime_services(void)
                efi_memory_desc_t *md;
 
                for_each_efi_memory_desc(md) {
-                       int md_size = md->num_pages << EFI_PAGE_SHIFT;
+                       u64 md_size = md->num_pages << EFI_PAGE_SHIFT;
                        struct resource *res;
 
                        if (!(md->attribute & EFI_MEMORY_SP))