]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
efi: Fix .data section size calculations when .sbat is present
authorVitaly Kuznetsov <vkuznets@redhat.com>
Fri, 20 Jun 2025 11:16:07 +0000 (13:16 +0200)
committerArd Biesheuvel <ardb@kernel.org>
Fri, 20 Jun 2025 11:36:14 +0000 (13:36 +0200)
commitf8b53cc9174c5980549f60c972faad82b660b62d
tree909254a9c01bc48358b7c42a7cb2c09fd63c9de1
parentc33453d08a56a45c2e72f9f56043610b8f7449c7
efi: Fix .data section size calculations when .sbat is present

Commit 0f9a1739dd0e ("efi: zboot specific mechanism for embedding SBAT
section") neglected to adjust the sizes of the .data section when
CONFIG_EFI_SBAT_FILE is set. As the result, the produced PE binary is
incorrect and some tools complain about it. E.g. 'sbsign' reports:

 # sbsign --key my.key --cert my.crt arch/arm64/boot/vmlinuz.efi
 warning: file-aligned section .data extends beyond end of file
 warning: checksum areas are greater than image size. Invalid section table?

Note, '__data_size' is also used in the PE optional header and it is not
entirely clear whether .sbat needs to be accounted as part of
SizeOfInitializedData or not. As the header seems to be unused by the real
world firmware, keeping the field equal to __data_size.

Fixes: 0f9a1739dd0e ("efi: zboot specific mechanism for embedding SBAT section")
Reported-by: Heinrich Schuchardt <heinrich.schuchardt@gmx.de>
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
drivers/firmware/efi/libstub/zboot.lds