blob: eef436c13c1cc749cd1ef0acefb6a479bbd1187b [file] [log] [blame]
Patrick Williams864cc432023-02-09 14:54:44 -06001From 56c14cd9a96d0c0907b2cb9c1b95a5debff97f75 Mon Sep 17 00:00:00 2001
Patrick Williams92b42cb2022-09-03 06:53:57 -05002From: Vishnu Banavath <vishnu.banavath@arm.com>
3Date: Fri, 14 Jan 2022 15:24:18 +0000
Patrick Williams864cc432023-02-09 14:54:44 -06004Subject: [PATCH 19/27] efi_loader: fix null pointer exception with
Patrick Williams92b42cb2022-09-03 06:53:57 -05005 get_image_info
6
7get_img_info API implemented for corstone1000 target does not
8check the input attributes and as a result uboot crash's with
9null pointer access. This change is to fix the null pointer
10exception.
11
12Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
13Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Patrick Williams8dd68482022-10-04 07:57:18 -050014Upstream-Status: Pending [Not submitted to upstream yet]
Patrick Williams92b42cb2022-09-03 06:53:57 -050015---
16 lib/efi_loader/efi_firmware.c | 19 +++++++++++--------
17 1 file changed, 11 insertions(+), 8 deletions(-)
18
19diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c
Patrick Williams864cc432023-02-09 14:54:44 -060020index 70568f22909e..c883e2ff0aa9 100644
Patrick Williams92b42cb2022-09-03 06:53:57 -050021--- a/lib/efi_loader/efi_firmware.c
22+++ b/lib/efi_loader/efi_firmware.c
Patrick Williams864cc432023-02-09 14:54:44 -060023@@ -39,26 +39,29 @@ static efi_status_t efi_corstone1000_img_info_get (
Patrick Williams92b42cb2022-09-03 06:53:57 -050024 int i = 0;
25
26 *image_info_size = sizeof(*image_info);
27- *descriptor_version = EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION;
28- *descriptor_count = 1;//dfu_num;
29- *descriptor_size = sizeof(*image_info);
30+ if(descriptor_version)
31+ *descriptor_version = EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION;
32+ if(descriptor_count)
33+ *descriptor_count = 1;
34+ if(descriptor_size)
35+ *descriptor_size = sizeof(*image_info);
36 if (package_version)
37 *package_version = 0xffffffff; /* not supported */
38 if(package_version_name)
39 *package_version_name = NULL; /* not supported */
40
41 if(image_info == NULL) {
42- log_info("image_info is null\n");
43+ log_debug("image_info is null\n");
44 return EFI_BUFFER_TOO_SMALL;
45 }
46
47- image_info[i].image_index = i;
48+ image_info[i].image_index = 1;
49 image_info[i].image_type_id = *image_type;
50 image_info[i].image_id = 0;
51- image_info[i].image_id_name = "wic";
52- image_info[i].version = 1;
53+ image_info[i].image_id_name = L"wic image";
54+ image_info[i].version = 0;
55 image_info[i].version_name = NULL;
56- image_info[i].size = 0x1000;
57+ image_info[i].size = 0;
58 image_info[i].attributes_supported = IMAGE_ATTRIBUTE_IMAGE_UPDATABLE |
59 IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED;
60 image_info[i].attributes_setting = IMAGE_ATTRIBUTE_IMAGE_UPDATABLE;
61--
Patrick Williams864cc432023-02-09 14:54:44 -0600622.39.1
Patrick Williams92b42cb2022-09-03 06:53:57 -050063