On Thu, 24 Sep 2026 10:53:06 -0300
Jason Gunthorpe <[email protected]> wrote:

> Sashiko points out that efi_handle_cmdline() allocates this memory and
> hands it over to the caller. If efi_pe_entry() ever returns it should be
> freed. Add a __free annotation.
> 
> Fixes: 42c8ea3dca09 ("efi: libstub: Factor out EFI stub entrypoint into 
> separate file")
> Signed-off-by: Jason Gunthorpe <[email protected]>
> ---
>  drivers/firmware/efi/libstub/efi-stub-entry.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/firmware/efi/libstub/efi-stub-entry.c 
> b/drivers/firmware/efi/libstub/efi-stub-entry.c
> index aa85e910fe595e..83fade2b0d3b84 100644
> --- a/drivers/firmware/efi/libstub/efi-stub-entry.c
> +++ b/drivers/firmware/efi/libstub/efi-stub-entry.c
> @@ -40,7 +40,7 @@ efi_status_t __efiapi efi_pe_entry(efi_handle_t handle,
>       unsigned long image_addr;
>       unsigned long image_size = 0;
>       /* addr/point and size pairs for memory management*/
> -     char *cmdline_ptr = NULL;
> +     char *cmdline_ptr __free(efi_pool) = NULL;

Can we move this down to just above the call to efi_handle_cmdline that
does the constructor side of this?

I see none of the efi stuff follow those guidance note that went in cleanup.h.

Ah well, not my problem :)

J

>       efi_guid_t loaded_image_proto = LOADED_IMAGE_PROTOCOL_GUID;
>       unsigned long reserve_addr = 0;
>       unsigned long reserve_size = 0;


Reply via email to