diff mbox series

efi_loader: check uuid_str_to_bin return value

Message ID 20230731085302.1049459-1-masahisa.kojima@linaro.org
State Accepted
Commit cd87d2c61ce8e8e963de514f2c8ab0f959d6b586
Headers show
Series efi_loader: check uuid_str_to_bin return value | expand

Commit Message

Masahisa Kojima July 31, 2023, 8:53 a.m. UTC
Check the uuid_str_to_bin return value, skip the node
if the image-type-id property is wrong format.

Addresses-Coverity-ID: 463145 ("Error handling issues")
Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
---
 lib/efi_loader/efi_firmware.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Comments

Heinrich Schuchardt Aug. 2, 2023, 9:36 p.m. UTC | #1
On 7/31/23 10:53, Masahisa Kojima wrote:
> Check the uuid_str_to_bin return value, skip the node
> if the image-type-id property is wrong format.
>
> Addresses-Coverity-ID: 463145 ("Error handling issues")
> Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>

Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

> ---
>   lib/efi_loader/efi_firmware.c | 8 ++++++--
>   1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c
> index b557738370..9abb29f1df 100644
> --- a/lib/efi_loader/efi_firmware.c
> +++ b/lib/efi_loader/efi_firmware.c
> @@ -159,7 +159,7 @@ static void efi_firmware_get_lsv_from_dtb(u8 image_index,
>   	const fdt32_t *val;
>   	const char *guid_str;
>   	int len, offset, index;
> -	int parent;
> +	int parent, ret;
>
>   	*lsv = 0;
>
> @@ -173,7 +173,11 @@ static void efi_firmware_get_lsv_from_dtb(u8 image_index,
>   		guid_str = fdt_getprop(fdt, offset, "image-type-id", &len);
>   		if (!guid_str)
>   			continue;
> -		uuid_str_to_bin(guid_str, guid.b, UUID_STR_FORMAT_GUID);
> +		ret = uuid_str_to_bin(guid_str, guid.b, UUID_STR_FORMAT_GUID);
> +		if (ret < 0) {
> +			log_warning("Wrong image-type-id format.\n");
> +			continue;
> +		}
>
>   		val = fdt_getprop(fdt, offset, "image-index", &len);
>   		if (!val)
diff mbox series

Patch

diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c
index b557738370..9abb29f1df 100644
--- a/lib/efi_loader/efi_firmware.c
+++ b/lib/efi_loader/efi_firmware.c
@@ -159,7 +159,7 @@  static void efi_firmware_get_lsv_from_dtb(u8 image_index,
 	const fdt32_t *val;
 	const char *guid_str;
 	int len, offset, index;
-	int parent;
+	int parent, ret;
 
 	*lsv = 0;
 
@@ -173,7 +173,11 @@  static void efi_firmware_get_lsv_from_dtb(u8 image_index,
 		guid_str = fdt_getprop(fdt, offset, "image-type-id", &len);
 		if (!guid_str)
 			continue;
-		uuid_str_to_bin(guid_str, guid.b, UUID_STR_FORMAT_GUID);
+		ret = uuid_str_to_bin(guid_str, guid.b, UUID_STR_FORMAT_GUID);
+		if (ret < 0) {
+			log_warning("Wrong image-type-id format.\n");
+			continue;
+		}
 
 		val = fdt_getprop(fdt, offset, "image-index", &len);
 		if (!val)