Andrew Geissler | ea144b03 | 2023-01-27 16:03:57 -0600 | [diff] [blame] | 1 | From 28e7a47c7021b7d321bb6e4dbe1bd7d2ceb8aa6d Mon Sep 17 00:00:00 2001 |
Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame] | 2 | From: Vishnu Banavath <vishnu.banavath@arm.com> |
| 3 | Date: Fri, 14 Jan 2022 15:24:18 +0000 |
Andrew Geissler | ea144b03 | 2023-01-27 16:03:57 -0600 | [diff] [blame] | 4 | Subject: [PATCH 19/25] efi_loader: fix null pointer exception with |
Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame] | 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> |
Patrick Williams | 8dd6848 | 2022-10-04 07:57:18 -0500 | [diff] [blame] | 14 | Upstream-Status: Pending [Not submitted to upstream yet] |
Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame] | 15 | --- |
| 16 | lib/efi_loader/efi_firmware.c | 19 +++++++++++-------- |
| 17 | 1 file changed, 11 insertions(+), 8 deletions(-) |
| 18 | |
| 19 | diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c |
Patrick Williams | 8dd6848 | 2022-10-04 07:57:18 -0500 | [diff] [blame] | 20 | index 25f427b936..28d9a19edb 100644 |
Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame] | 21 | --- a/lib/efi_loader/efi_firmware.c |
| 22 | +++ b/lib/efi_loader/efi_firmware.c |
| 23 | @@ -38,26 +38,29 @@ static efi_status_t efi_corstone1000_img_info_get ( |
| 24 | 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 Williams | 8dd6848 | 2022-10-04 07:57:18 -0500 | [diff] [blame] | 62 | 2.17.1 |
Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame] | 63 | |