Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame^] | 1 | From 383078dde2fbf509dc3d24505f6b328316aee030 Mon Sep 17 00:00:00 2001 |
| 2 | From: Vishnu Banavath <vishnu.banavath@arm.com> |
| 3 | Date: Fri, 14 Jan 2022 15:24:18 +0000 |
| 4 | Subject: [PATCH 23/24] efi_loader: fix null pointer exception with |
| 5 | get_image_info |
| 6 | |
| 7 | get_img_info API implemented for corstone1000 target does not |
| 8 | check the input attributes and as a result uboot crash's with |
| 9 | null pointer access. This change is to fix the null pointer |
| 10 | exception. |
| 11 | |
| 12 | Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com> |
| 13 | Signed-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 | |
| 18 | diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c |
| 19 | index 25f427b93669..28d9a19edb90 100644 |
| 20 | --- a/lib/efi_loader/efi_firmware.c |
| 21 | +++ b/lib/efi_loader/efi_firmware.c |
| 22 | @@ -38,26 +38,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 | -- |
| 61 | 2.37.1 |
| 62 | |