From 56c14cd9a96d0c0907b2cb9c1b95a5debff97f75 Mon Sep 17 00:00:00 2001
From: Vishnu Banavath <vishnu.banavath@arm.com>
Date: Fri, 14 Jan 2022 15:24:18 +0000
Subject: [PATCH 19/27] efi_loader: fix null pointer exception with
 get_image_info

get_img_info API implemented for corstone1000 target does not
check the input attributes and as a result uboot crash's with
null pointer access. This change is to fix the null pointer
exception.

Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Upstream-Status: Pending [Not submitted to upstream yet]
---
 lib/efi_loader/efi_firmware.c | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c
index 70568f22909e..c883e2ff0aa9 100644
--- a/lib/efi_loader/efi_firmware.c
+++ b/lib/efi_loader/efi_firmware.c
@@ -39,26 +39,29 @@ static efi_status_t efi_corstone1000_img_info_get (
 	int i = 0;
 
 	*image_info_size = sizeof(*image_info);
-	*descriptor_version = EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION;
-	*descriptor_count = 1;//dfu_num;
-	*descriptor_size = sizeof(*image_info);
+	if(descriptor_version)
+	    *descriptor_version = EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION;
+	if(descriptor_count)
+	    *descriptor_count = 1;
+	if(descriptor_size)
+	    *descriptor_size = sizeof(*image_info);
 	if (package_version)
 		*package_version = 0xffffffff; /* not supported */
 	if(package_version_name)
 		*package_version_name = NULL; /* not supported */
 
 	if(image_info == NULL) {
-		log_info("image_info is null\n");
+		log_debug("image_info is null\n");
 		return EFI_BUFFER_TOO_SMALL;
 	}
 
-	image_info[i].image_index = i;
+	image_info[i].image_index = 1;
 	image_info[i].image_type_id = *image_type;
 	image_info[i].image_id = 0;
-	image_info[i].image_id_name = "wic";
-	image_info[i].version = 1;
+	image_info[i].image_id_name = L"wic image";
+	image_info[i].version = 0;
 	image_info[i].version_name = NULL;
-	image_info[i].size = 0x1000;
+	image_info[i].size = 0;
 	image_info[i].attributes_supported = IMAGE_ATTRIBUTE_IMAGE_UPDATABLE |
 					     IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED;
 	image_info[i].attributes_setting = IMAGE_ATTRIBUTE_IMAGE_UPDATABLE;
-- 
2.39.1

