aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSughosh Ganu <sughosh.ganu@linaro.org>2022-05-31 12:45:33 +0530
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2022-06-04 08:43:55 +0200
commit6a463bc1c9bde3326825369061803d281cf423d8 (patch)
tree8cdcf5300209e5e5dd3ab243d35a6b79ddc67c43
parentf1533c41a78a1defe147c87142ebfeb25b4c46ed (diff)
downloadu-boot-6a463bc1c9bde3326825369061803d281cf423d8.zip
u-boot-6a463bc1c9bde3326825369061803d281cf423d8.tar.gz
u-boot-6a463bc1c9bde3326825369061803d281cf423d8.tar.bz2
EFI: Populate descriptor_count value only when image_info_size is not zero
The GetImageInfo function of the Firmware Mangement Protocol(FMP) gets called initially to query the size of the image descriptor array that would have to be allocated. During this call, the rest of the function arguments, specifically pointers might be passed as NULL. Do not populate the descriptor_count value before it is known that the call to GetImageInfo has been made with the allocated buffer for the image descriptors. Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
-rw-r--r--lib/efi_loader/efi_firmware.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c
index fe4e084..9cdefab 100644
--- a/lib/efi_loader/efi_firmware.c
+++ b/lib/efi_loader/efi_firmware.c
@@ -130,9 +130,6 @@ static efi_status_t efi_fill_image_desc_array(
struct efi_fw_image *fw_array;
int i;
- fw_array = update_info.images;
- *descriptor_count = num_image_type_guids;
-
total_size = sizeof(*image_info) * num_image_type_guids;
if (*image_info_size < total_size) {
@@ -142,6 +139,8 @@ static efi_status_t efi_fill_image_desc_array(
}
*image_info_size = total_size;
+ fw_array = update_info.images;
+ *descriptor_count = num_image_type_guids;
*descriptor_version = EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION;
*descriptor_size = sizeof(*image_info);
*package_version = 0xffffffff; /* not supported */