[PATCH] efi_loader: Fix potential deref-after-null

Maks Mishin maks.mishinfz at gmail.com
Sun Feb 2 18:59:40 CET 2025


After having been compared to a NULL value at efi_disk.c:426, 
pointer 'part_info' is dereferenced at efi_disk.c:534.

Signed-off-by: Maks Mishin <maks.mishinFZ at gmail.com>
---
 lib/efi_loader/efi_disk.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c
index 1f3de0a233..83e8eb6fe4 100644
--- a/lib/efi_loader/efi_disk.c
+++ b/lib/efi_loader/efi_disk.c
@@ -531,13 +531,15 @@ static efi_status_t efi_disk_add_dev(
 
 	/* Store first EFI system partition */
 	if (part && efi_system_partition.uclass_id == UCLASS_INVALID) {
-		if (part_info->bootable & PART_EFI_SYSTEM_PARTITION) {
-			efi_system_partition.uclass_id = desc->uclass_id;
-			efi_system_partition.devnum = desc->devnum;
-			efi_system_partition.part = part;
-			EFI_PRINT("EFI system partition: %s %x:%x\n",
-				  blk_get_uclass_name(desc->uclass_id),
-				  desc->devnum, part);
+		if (part_info) {
+			if (part_info->bootable & PART_EFI_SYSTEM_PARTITION) {
+				efi_system_partition.uclass_id = desc->uclass_id;
+				efi_system_partition.devnum = desc->devnum;
+				efi_system_partition.part = part;
+				EFI_PRINT("EFI system partition: %s %x:%x\n",
+					blk_get_uclass_name(desc->uclass_id),
+					desc->devnum, part);
+			}
 		}
 	}
 	return EFI_SUCCESS;
-- 
2.34.1



More information about the U-Boot mailing list