Re: [PATCH 1/2] x86/boot: Order sections by their RVAs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 5 Feb 2024 at 14:44, Evgeniy Baskov <baskov@xxxxxxxxx> wrote:
>
> Image loaders which check the contiguity of executable images consider
> sections adjacent in the section table to be adjacent in virtual memory.
>
> Sort sections by their RVAs in PE section table.
>
> Signed-off-by: Evgeniy Baskov <baskov@xxxxxxxxx>
> ---
>  arch/x86/boot/header.S | 56 +++++++++++++++++++++---------------------
>  1 file changed, 28 insertions(+), 28 deletions(-)
>

Hi,

I just sent a fix for this issue:

https://lore.kernel.org/linux-efi/20240205081106.2415414-2-ardb+git@xxxxxxxxxx/T/#u

Could you please check whether it works for you as well?


> diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
> index b2771710ed98..097b84ab288c 100644
> --- a/arch/x86/boot/header.S
> +++ b/arch/x86/boot/header.S
> @@ -153,6 +153,34 @@ section_table:
>                 IMAGE_SCN_MEM_READ              | \
>                 IMAGE_SCN_MEM_DISCARDABLE       # Characteristics
>
> +       .ascii  ".text"
> +       .byte   0
> +       .byte   0
> +       .byte   0
> +       .long   ZO__data
> +       .long   setup_size
> +       .long   ZO__data                        # Size of initialized data
> +                                               # on disk
> +       .long   setup_size
> +       .long   0                               # PointerToRelocations
> +       .long   0                               # PointerToLineNumbers
> +       .word   0                               # NumberOfRelocations
> +       .word   0                               # NumberOfLineNumbers
> +       .long   IMAGE_SCN_CNT_CODE              | \
> +               IMAGE_SCN_MEM_READ              | \
> +               IMAGE_SCN_MEM_EXECUTE           # Characteristics
> +
> +       .ascii  ".data\0\0\0"
> +       .long   ZO__end - ZO__data              # VirtualSize
> +       .long   setup_size + ZO__data           # VirtualAddress
> +       .long   ZO__edata - ZO__data            # SizeOfRawData
> +       .long   setup_size + ZO__data           # PointerToRawData
> +
> +       .long   0, 0, 0
> +       .long   IMAGE_SCN_CNT_INITIALIZED_DATA  | \
> +               IMAGE_SCN_MEM_READ              | \
> +               IMAGE_SCN_MEM_WRITE             # Characteristics
> +
>  #ifdef CONFIG_EFI_MIXED
>         .asciz  ".compat"
>
> @@ -185,34 +213,6 @@ pecompat_fstart:
>         .set    pecompat_vsize, 0
>         .set    pecompat_fstart, setup_size
>  #endif
> -       .ascii  ".text"
> -       .byte   0
> -       .byte   0
> -       .byte   0
> -       .long   ZO__data
> -       .long   setup_size
> -       .long   ZO__data                        # Size of initialized data
> -                                               # on disk
> -       .long   setup_size
> -       .long   0                               # PointerToRelocations
> -       .long   0                               # PointerToLineNumbers
> -       .word   0                               # NumberOfRelocations
> -       .word   0                               # NumberOfLineNumbers
> -       .long   IMAGE_SCN_CNT_CODE              | \
> -               IMAGE_SCN_MEM_READ              | \
> -               IMAGE_SCN_MEM_EXECUTE           # Characteristics
> -
> -       .ascii  ".data\0\0\0"
> -       .long   ZO__end - ZO__data              # VirtualSize
> -       .long   setup_size + ZO__data           # VirtualAddress
> -       .long   ZO__edata - ZO__data            # SizeOfRawData
> -       .long   setup_size + ZO__data           # PointerToRawData
> -
> -       .long   0, 0, 0
> -       .long   IMAGE_SCN_CNT_INITIALIZED_DATA  | \
> -               IMAGE_SCN_MEM_READ              | \
> -               IMAGE_SCN_MEM_WRITE             # Characteristics
> -
>         .set    section_count, (. - section_table) / 40
>  #endif /* CONFIG_EFI_STUB */
>
> --
> 2.43.0
>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux