[PATCH] efi/libstub: Fixed an issue with screen_info not being initialized

Qiang Ma posted 1 patch 1 year, 5 months ago
drivers/firmware/efi/libstub/screen_info.c | 2 ++
1 file changed, 2 insertions(+)
[PATCH] efi/libstub: Fixed an issue with screen_info not being initialized
Posted by Qiang Ma 1 year, 5 months ago
After calling uefi interface allocate_pool to apply for memory, we
should clear 0 to prevent the possibility of using random values.

Signed-off-by: Qiang Ma <maqianga@uniontech.com>
---
 drivers/firmware/efi/libstub/screen_info.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/firmware/efi/libstub/screen_info.c b/drivers/firmware/efi/libstub/screen_info.c
index a51ec201ca3c..5d3a1e32d177 100644
--- a/drivers/firmware/efi/libstub/screen_info.c
+++ b/drivers/firmware/efi/libstub/screen_info.c
@@ -32,6 +32,8 @@ struct screen_info *__alloc_screen_info(void)
 	if (status != EFI_SUCCESS)
 		return NULL;
 
+	memset(si, 0, sizeof(*si));
+
 	status = efi_bs_call(install_configuration_table,
 			     &screen_info_guid, si);
 	if (status == EFI_SUCCESS)
-- 
2.20.1
Re: [PATCH] efi/libstub: Fixed an issue with screen_info not being initialized
Posted by Ard Biesheuvel 1 year, 5 months ago
On Wed, 17 Jul 2024 at 00:01, Qiang Ma <maqianga@uniontech.com> wrote:
>
> After calling uefi interface allocate_pool to apply for memory, we
> should clear 0 to prevent the possibility of using random values.
>
> Signed-off-by: Qiang Ma <maqianga@uniontech.com>
> ---
>  drivers/firmware/efi/libstub/screen_info.c | 2 ++
>  1 file changed, 2 insertions(+)
>

Thanks. I've queued this as a fix.

> diff --git a/drivers/firmware/efi/libstub/screen_info.c b/drivers/firmware/efi/libstub/screen_info.c
> index a51ec201ca3c..5d3a1e32d177 100644
> --- a/drivers/firmware/efi/libstub/screen_info.c
> +++ b/drivers/firmware/efi/libstub/screen_info.c
> @@ -32,6 +32,8 @@ struct screen_info *__alloc_screen_info(void)
>         if (status != EFI_SUCCESS)
>                 return NULL;
>
> +       memset(si, 0, sizeof(*si));
> +
>         status = efi_bs_call(install_configuration_table,
>                              &screen_info_guid, si);
>         if (status == EFI_SUCCESS)
> --
> 2.20.1
>