| From 957e88fc52d77e6a3024f06bebfaa713c9e99e59 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 16/33] 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 0a38a96351..c883e2ff0a 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_warning("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.25.1 |
| |