blob: 532e872677115477877d632d124f75622d91fda5 [file] [log] [blame]
Brad Bishopbec4ebc2022-08-03 09:55:16 -04001From 2da8554ab732c59c7ca624ac4b16412fa9c2e39c Mon Sep 17 00:00:00 2001
2From: Vishnu Banavath <vishnu.banavath@arm.com>
3Date: Fri, 14 Jan 2022 15:24:18 +0000
4Subject: [PATCH 26/27] efi_loader: fix null pointer exception with
5 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>
14---
15 lib/efi_loader/efi_firmware.c | 19 +++++++++++--------
16 1 file changed, 11 insertions(+), 8 deletions(-)
17
18diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c
19index 477ad072070e..f99c57fde576 100644
20--- a/lib/efi_loader/efi_firmware.c
21+++ b/lib/efi_loader/efi_firmware.c
22@@ -347,26 +347,29 @@ static efi_status_t efi_corstone1000_img_info_get (
23 int i = 0;
24
25 *image_info_size = sizeof(*image_info);
26- *descriptor_version = EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION;
27- *descriptor_count = 1;//dfu_num;
28- *descriptor_size = sizeof(*image_info);
29+ if(descriptor_version)
30+ *descriptor_version = EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION;
31+ if(descriptor_count)
32+ *descriptor_count = 1;
33+ if(descriptor_size)
34+ *descriptor_size = sizeof(*image_info);
35 if (package_version)
36 *package_version = 0xffffffff; /* not supported */
37 if(package_version_name)
38 *package_version_name = NULL; /* not supported */
39
40 if(image_info == NULL) {
41- log_info("image_info is null\n");
42+ log_debug("image_info is null\n");
43 return EFI_BUFFER_TOO_SMALL;
44 }
45
46- image_info[i].image_index = i;
47+ image_info[i].image_index = 1;
48 image_info[i].image_type_id = *image_type;
49 image_info[i].image_id = 0;
50- image_info[i].image_id_name = "wic";
51- image_info[i].version = 1;
52+ image_info[i].image_id_name = L"wic image";
53+ image_info[i].version = 0;
54 image_info[i].version_name = NULL;
55- image_info[i].size = 0x1000;
56+ image_info[i].size = 0;
57 image_info[i].attributes_supported = IMAGE_ATTRIBUTE_IMAGE_UPDATABLE |
58 IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED;
59 image_info[i].attributes_setting = IMAGE_ATTRIBUTE_IMAGE_UPDATABLE;
60--
612.30.2
62