> On 20 Dec 2025, at 7:17 PM, Daniel Kiper <[email protected]> wrote:
> 
> On Wed, Dec 03, 2025 at 08:00:36PM +0530, Sudhakar Kuppusamy wrote:
>> The grub-mkimage does not add zero padding when creating core.elf with an
>> appended signature size that is not aligned to a multiple of 4 bytes.
>> Firmware is unable to read the magic string "~Module signature appended~"
>> from core.elf.
>> 
>> To fix this, round an appended signature size + appended signature ELF note
>> size up to the nearest multiple of a 4-byte alignment and truncate it to the
>> appended signature size.
>> 
>> Example:
>> grub-mkimage -O powerpc-ieee1275 -o core.elf -d grub-core -p /grub2 -x \
>>  kernel.der --appended-signature-size 490 ...
>> 
>> Signed-off-by: Sudhakar Kuppusamy <[email protected]>
>> ---
>> util/grub-mkimagexx.c | 8 +++++++-
>> 1 file changed, 7 insertions(+), 1 deletion(-)
>> 
>> diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c
>> index 7fe2e35e6..07a80a36d 100644
>> --- a/util/grub-mkimagexx.c
>> +++ b/util/grub-mkimagexx.c
>> @@ -248,7 +248,13 @@ SUFFIX (grub_mkimage_generate_elf) (const struct 
>> grub_install_image_target_desc
>>   if (appsig_size)
>>     {
>>       phnum++;
>> -      footer_size += ALIGN_UP (sizeof (struct 
>> grub_appended_signature_note), 4);
>> +      /*
>> +       * Rounds a appended signature size + appended signature note size up 
>> to
>> +       * the nearest multiple of a 4-byte alignment.
>> +       */
>> +      footer_size += ALIGN_UP (sizeof (struct grub_appended_signature_note) 
>> + appsig_size, 4);
>> +      /* Truncating to appended signature size. */
>> +      footer_size -= appsig_size;
> 
> Should not this be
> 
>  footer_size += ALIGN_UP (sizeof (struct grub_appended_signature_note), 4);
>  appsig_size += ALIGN_UP (appsig_size, 4);
> 
> ?

Thank you Daniel for the review.

Did you meant footer_size += ALIGN_UP (appsig_size, 4); if yes, then it should 
be like

footer_size += ALIGN_UP (sizeof (struct grub_appended_signature_note), 4);
footer_size += ALIGN_UP (appsig_size, 4);
footer_size -= appsig_size;


Thanks,
Sudhakar
> 
> Daniel



_______________________________________________
Grub-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to