[PATCH] efi_loader: Assure fitImage from capsule is used from 8-byte aligned address

Marek Vasut marek.vasut at mailbox.org
Wed Nov 19 18:03:35 CET 2025


On 11/18/25 2:56 PM, Ilias Apalodimas wrote:

Hello Ilias,

sorry for my slow response, I am buried under emails.

>>>> +               img = memalign(8, image_size);
>>>> +               if (!img)
>>>> +                       return EFI_EXIT(EFI_BAD_BUFFER_SIZE);
>>>> +               memcpy(img, image, image_size);
>>>> +       } else {
>>>> +               img = (void *)image;
>>>> +       }
>>>> +
>>>> +       ret = fit_update(img);
>>>> +
>>>> +       if ((uintptr_t)image & 7)
>>>> +               free(img);
>>>
>>> Initialize img to NULL and make the check a bit simpler to read (or
>>> get rid of it overall)
>> This part ^ I do not understand. The img variable is used by
>> fit_update(img) , where should it be initialized to NULL ?
> 
> The patch might be misleading since it doesn't show the entire
> function. But from what I saw 'img' is only initialized when
> 'if ((uintptr_t)image & 7)' is true. you can initialize img to NULL on
> the declaration and just check for that.

The 'img' is always initialized, see this:

"
+	if ((uintptr_t)image & 7) {
+		img = memalign(8, image_size);
                 ^^^ ----------------------- Here it is initialized
+		if (!img)
+			return EFI_EXIT(EFI_BAD_BUFFER_SIZE);
+		memcpy(img, image, image_size);
+	} else {
+		img = (void *)image;
                 ^^^ ----------------------- Here it is initialized too
+	}
"


More information about the U-Boot mailing list