Commit 217c0a5c authored by Mike Rapoport (Microsoft)'s avatar Mike Rapoport (Microsoft) Committed by Ard Biesheuvel
Browse files

x86/efi: efi_unmap_boot_services: fix calculation of ranges_to_free size



ranges_to_free array should have enough room to store the entire EFI
memmap plus an extra element for NULL entry.
The calculation of this array size wrongly adds 1 to the overall size
instead of adding 1 to the number of elements.

Add parentheses to properly size the array.

Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
Fixes: a4b0bf6a ("x86/efi: defer freeing of boot services memory")
Signed-off-by: default avatarMike Rapoport (Microsoft) <rppt@kernel.org>
Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
parent a4b0bf6a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -424,7 +424,7 @@ void __init efi_unmap_boot_services(void)
	if (efi_enabled(EFI_DBG))
		return;

	sz = sizeof(*ranges_to_free) * efi.memmap.nr_map + 1;
	sz = sizeof(*ranges_to_free) * (efi.memmap.nr_map + 1);
	ranges_to_free = kzalloc(sz, GFP_KERNEL);
	if (!ranges_to_free) {
		pr_err("Failed to allocate storage for freeable EFI regions\n");