From: Mark Rutland <mark.rutland@arm.com>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: linux-efi@vger.kernel.org, kernel-hardening@lists.openwall.com,
catalin.marinas@arm.com, linux@armlinux.org.uk,
leif.lindholm@linaro.org, linux-arm-kernel@lists.infradead.org,
labbott@fedoraproject.org
Subject: Re: [PATCH v2 07/14] arm64: efi: replace open coded constants with symbolic ones
Date: Fri, 10 Feb 2017 10:19:23 +0000 [thread overview]
Message-ID: <20170210101923.GE28753@leverpostej> (raw)
In-Reply-To: <1486554947-3964-8-git-send-email-ard.biesheuvel@linaro.org>
On Wed, Feb 08, 2017 at 11:55:40AM +0000, Ard Biesheuvel wrote:
> Replace open coded constants with symbolic ones throughout the
> Image and the EFI headers. No binary level changes are intended.
>
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Thanks,
Mark.
> ---
> arch/arm64/kernel/efi-header.S | 38 +++++++++++---------
> 1 file changed, 21 insertions(+), 17 deletions(-)
>
> diff --git a/arch/arm64/kernel/efi-header.S b/arch/arm64/kernel/efi-header.S
> index 8786d58af2df..7637226ea9ca 100644
> --- a/arch/arm64/kernel/efi-header.S
> +++ b/arch/arm64/kernel/efi-header.S
> @@ -7,22 +7,24 @@
> * published by the Free Software Foundation.
> */
>
> +#include <linux/pe.h>
> +#include <linux/sizes.h>
> +
> .macro __EFI_PE_HEADER
> - .ascii "PE"
> - .short 0
> + .long PE_MAGIC
> coff_header:
> - .short 0xaa64 // AArch64
> - .short 1 // nr_sections
> + .short IMAGE_FILE_MACHINE_ARM64 // Machine
> + .short section_count // NumberOfSections
> .long 0 // TimeDateStamp
> .long 0 // PointerToSymbolTable
> .long 0 // NumberOfSymbols
> .short section_table - optional_header // SizeOfOptionalHeader
> - .short 0x206 // Characteristics.
> - // IMAGE_FILE_DEBUG_STRIPPED |
> - // IMAGE_FILE_EXECUTABLE_IMAGE |
> - // IMAGE_FILE_LINE_NUMS_STRIPPED
> + .short IMAGE_FILE_DEBUG_STRIPPED | \
> + IMAGE_FILE_EXECUTABLE_IMAGE | \
> + IMAGE_FILE_LINE_NUMS_STRIPPED // Characteristics
> +
> optional_header:
> - .short 0x20b // PE32+ format
> + .short PE_OPT_MAGIC_PE32PLUS // PE32+ format
> .byte 0x02 // MajorLinkerVersion
> .byte 0x14 // MinorLinkerVersion
> .long _end - efi_header_end // SizeOfCode
> @@ -33,7 +35,7 @@ optional_header:
>
> extra_header_fields:
> .quad 0 // ImageBase
> - .long 0x1000 // SectionAlignment
> + .long SZ_4K // SectionAlignment
> .long PECOFF_FILE_ALIGNMENT // FileAlignment
> .short 0 // MajorOperatingSystemVersion
> .short 0 // MinorOperatingSystemVersion
> @@ -48,7 +50,7 @@ extra_header_fields:
> // Everything before the kernel image is considered part of the header
> .long efi_header_end - _head // SizeOfHeaders
> .long 0 // CheckSum
> - .short 0xa // Subsystem (EFI application)
> + .short IMAGE_SUBSYSTEM_EFI_APPLICATION // Subsystem
> .short 0 // DllCharacteristics
> .quad 0 // SizeOfStackReserve
> .quad 0 // SizeOfStackCommit
> @@ -71,10 +73,7 @@ extra_header_fields:
>
> // Section table
> section_table:
> - .ascii ".text"
> - .byte 0
> - .byte 0
> - .byte 0 // end of 0 padding of section name
> + .ascii ".text\0\0\0"
> .long _end - efi_header_end // VirtualSize
> .long efi_header_end - _head // VirtualAddress
> .long _edata - efi_header_end // SizeOfRawData
> @@ -84,7 +83,12 @@ section_table:
> .long 0 // PointerToLineNumbers
> .short 0 // NumberOfRelocations
> .short 0 // NumberOfLineNumbers
> - .long 0xe0000020 // Characteristics
> + .long IMAGE_SCN_CNT_CODE | \
> + IMAGE_SCN_MEM_EXECUTE | \
> + IMAGE_SCN_MEM_READ | \
> + IMAGE_SCN_MEM_WRITE // Characteristics
> +
> + .set section_count, (. - section_table) / 40
>
> #ifdef CONFIG_DEBUG_EFI
> /*
> @@ -106,7 +110,7 @@ efi_debug_table:
> .long 0 // TimeDateStamp
> .short 0 // MajorVersion
> .short 0 // MinorVersion
> - .long 2 // Type == EFI_IMAGE_DEBUG_TYPE_CODEVIEW
> + .long IMAGE_DEBUG_TYPE_CODEVIEW // Type
> .long efi_debug_entry_size // SizeOfData
> .long 0 // RVA
> .long efi_debug_entry - _head // FileOffset
> --
> 2.7.4
>
WARNING: multiple messages have this Message-ID (diff)
From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 07/14] arm64: efi: replace open coded constants with symbolic ones
Date: Fri, 10 Feb 2017 10:19:23 +0000 [thread overview]
Message-ID: <20170210101923.GE28753@leverpostej> (raw)
In-Reply-To: <1486554947-3964-8-git-send-email-ard.biesheuvel@linaro.org>
On Wed, Feb 08, 2017 at 11:55:40AM +0000, Ard Biesheuvel wrote:
> Replace open coded constants with symbolic ones throughout the
> Image and the EFI headers. No binary level changes are intended.
>
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Thanks,
Mark.
> ---
> arch/arm64/kernel/efi-header.S | 38 +++++++++++---------
> 1 file changed, 21 insertions(+), 17 deletions(-)
>
> diff --git a/arch/arm64/kernel/efi-header.S b/arch/arm64/kernel/efi-header.S
> index 8786d58af2df..7637226ea9ca 100644
> --- a/arch/arm64/kernel/efi-header.S
> +++ b/arch/arm64/kernel/efi-header.S
> @@ -7,22 +7,24 @@
> * published by the Free Software Foundation.
> */
>
> +#include <linux/pe.h>
> +#include <linux/sizes.h>
> +
> .macro __EFI_PE_HEADER
> - .ascii "PE"
> - .short 0
> + .long PE_MAGIC
> coff_header:
> - .short 0xaa64 // AArch64
> - .short 1 // nr_sections
> + .short IMAGE_FILE_MACHINE_ARM64 // Machine
> + .short section_count // NumberOfSections
> .long 0 // TimeDateStamp
> .long 0 // PointerToSymbolTable
> .long 0 // NumberOfSymbols
> .short section_table - optional_header // SizeOfOptionalHeader
> - .short 0x206 // Characteristics.
> - // IMAGE_FILE_DEBUG_STRIPPED |
> - // IMAGE_FILE_EXECUTABLE_IMAGE |
> - // IMAGE_FILE_LINE_NUMS_STRIPPED
> + .short IMAGE_FILE_DEBUG_STRIPPED | \
> + IMAGE_FILE_EXECUTABLE_IMAGE | \
> + IMAGE_FILE_LINE_NUMS_STRIPPED // Characteristics
> +
> optional_header:
> - .short 0x20b // PE32+ format
> + .short PE_OPT_MAGIC_PE32PLUS // PE32+ format
> .byte 0x02 // MajorLinkerVersion
> .byte 0x14 // MinorLinkerVersion
> .long _end - efi_header_end // SizeOfCode
> @@ -33,7 +35,7 @@ optional_header:
>
> extra_header_fields:
> .quad 0 // ImageBase
> - .long 0x1000 // SectionAlignment
> + .long SZ_4K // SectionAlignment
> .long PECOFF_FILE_ALIGNMENT // FileAlignment
> .short 0 // MajorOperatingSystemVersion
> .short 0 // MinorOperatingSystemVersion
> @@ -48,7 +50,7 @@ extra_header_fields:
> // Everything before the kernel image is considered part of the header
> .long efi_header_end - _head // SizeOfHeaders
> .long 0 // CheckSum
> - .short 0xa // Subsystem (EFI application)
> + .short IMAGE_SUBSYSTEM_EFI_APPLICATION // Subsystem
> .short 0 // DllCharacteristics
> .quad 0 // SizeOfStackReserve
> .quad 0 // SizeOfStackCommit
> @@ -71,10 +73,7 @@ extra_header_fields:
>
> // Section table
> section_table:
> - .ascii ".text"
> - .byte 0
> - .byte 0
> - .byte 0 // end of 0 padding of section name
> + .ascii ".text\0\0\0"
> .long _end - efi_header_end // VirtualSize
> .long efi_header_end - _head // VirtualAddress
> .long _edata - efi_header_end // SizeOfRawData
> @@ -84,7 +83,12 @@ section_table:
> .long 0 // PointerToLineNumbers
> .short 0 // NumberOfRelocations
> .short 0 // NumberOfLineNumbers
> - .long 0xe0000020 // Characteristics
> + .long IMAGE_SCN_CNT_CODE | \
> + IMAGE_SCN_MEM_EXECUTE | \
> + IMAGE_SCN_MEM_READ | \
> + IMAGE_SCN_MEM_WRITE // Characteristics
> +
> + .set section_count, (. - section_table) / 40
>
> #ifdef CONFIG_DEBUG_EFI
> /*
> @@ -106,7 +110,7 @@ efi_debug_table:
> .long 0 // TimeDateStamp
> .short 0 // MajorVersion
> .short 0 // MinorVersion
> - .long 2 // Type == EFI_IMAGE_DEBUG_TYPE_CODEVIEW
> + .long IMAGE_DEBUG_TYPE_CODEVIEW // Type
> .long efi_debug_entry_size // SizeOfData
> .long 0 // RVA
> .long efi_debug_entry - _head // FileOffset
> --
> 2.7.4
>
WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland@arm.com>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: linux-efi@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
leif.lindholm@linaro.org, catalin.marinas@arm.com,
linux@armlinux.org.uk, kernel-hardening@lists.openwall.com,
labbott@fedoraproject.org
Subject: [kernel-hardening] Re: [PATCH v2 07/14] arm64: efi: replace open coded constants with symbolic ones
Date: Fri, 10 Feb 2017 10:19:23 +0000 [thread overview]
Message-ID: <20170210101923.GE28753@leverpostej> (raw)
In-Reply-To: <1486554947-3964-8-git-send-email-ard.biesheuvel@linaro.org>
On Wed, Feb 08, 2017 at 11:55:40AM +0000, Ard Biesheuvel wrote:
> Replace open coded constants with symbolic ones throughout the
> Image and the EFI headers. No binary level changes are intended.
>
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Thanks,
Mark.
> ---
> arch/arm64/kernel/efi-header.S | 38 +++++++++++---------
> 1 file changed, 21 insertions(+), 17 deletions(-)
>
> diff --git a/arch/arm64/kernel/efi-header.S b/arch/arm64/kernel/efi-header.S
> index 8786d58af2df..7637226ea9ca 100644
> --- a/arch/arm64/kernel/efi-header.S
> +++ b/arch/arm64/kernel/efi-header.S
> @@ -7,22 +7,24 @@
> * published by the Free Software Foundation.
> */
>
> +#include <linux/pe.h>
> +#include <linux/sizes.h>
> +
> .macro __EFI_PE_HEADER
> - .ascii "PE"
> - .short 0
> + .long PE_MAGIC
> coff_header:
> - .short 0xaa64 // AArch64
> - .short 1 // nr_sections
> + .short IMAGE_FILE_MACHINE_ARM64 // Machine
> + .short section_count // NumberOfSections
> .long 0 // TimeDateStamp
> .long 0 // PointerToSymbolTable
> .long 0 // NumberOfSymbols
> .short section_table - optional_header // SizeOfOptionalHeader
> - .short 0x206 // Characteristics.
> - // IMAGE_FILE_DEBUG_STRIPPED |
> - // IMAGE_FILE_EXECUTABLE_IMAGE |
> - // IMAGE_FILE_LINE_NUMS_STRIPPED
> + .short IMAGE_FILE_DEBUG_STRIPPED | \
> + IMAGE_FILE_EXECUTABLE_IMAGE | \
> + IMAGE_FILE_LINE_NUMS_STRIPPED // Characteristics
> +
> optional_header:
> - .short 0x20b // PE32+ format
> + .short PE_OPT_MAGIC_PE32PLUS // PE32+ format
> .byte 0x02 // MajorLinkerVersion
> .byte 0x14 // MinorLinkerVersion
> .long _end - efi_header_end // SizeOfCode
> @@ -33,7 +35,7 @@ optional_header:
>
> extra_header_fields:
> .quad 0 // ImageBase
> - .long 0x1000 // SectionAlignment
> + .long SZ_4K // SectionAlignment
> .long PECOFF_FILE_ALIGNMENT // FileAlignment
> .short 0 // MajorOperatingSystemVersion
> .short 0 // MinorOperatingSystemVersion
> @@ -48,7 +50,7 @@ extra_header_fields:
> // Everything before the kernel image is considered part of the header
> .long efi_header_end - _head // SizeOfHeaders
> .long 0 // CheckSum
> - .short 0xa // Subsystem (EFI application)
> + .short IMAGE_SUBSYSTEM_EFI_APPLICATION // Subsystem
> .short 0 // DllCharacteristics
> .quad 0 // SizeOfStackReserve
> .quad 0 // SizeOfStackCommit
> @@ -71,10 +73,7 @@ extra_header_fields:
>
> // Section table
> section_table:
> - .ascii ".text"
> - .byte 0
> - .byte 0
> - .byte 0 // end of 0 padding of section name
> + .ascii ".text\0\0\0"
> .long _end - efi_header_end // VirtualSize
> .long efi_header_end - _head // VirtualAddress
> .long _edata - efi_header_end // SizeOfRawData
> @@ -84,7 +83,12 @@ section_table:
> .long 0 // PointerToLineNumbers
> .short 0 // NumberOfRelocations
> .short 0 // NumberOfLineNumbers
> - .long 0xe0000020 // Characteristics
> + .long IMAGE_SCN_CNT_CODE | \
> + IMAGE_SCN_MEM_EXECUTE | \
> + IMAGE_SCN_MEM_READ | \
> + IMAGE_SCN_MEM_WRITE // Characteristics
> +
> + .set section_count, (. - section_table) / 40
>
> #ifdef CONFIG_DEBUG_EFI
> /*
> @@ -106,7 +110,7 @@ efi_debug_table:
> .long 0 // TimeDateStamp
> .short 0 // MajorVersion
> .short 0 // MinorVersion
> - .long 2 // Type == EFI_IMAGE_DEBUG_TYPE_CODEVIEW
> + .long IMAGE_DEBUG_TYPE_CODEVIEW // Type
> .long efi_debug_entry_size // SizeOfData
> .long 0 // RVA
> .long efi_debug_entry - _head // FileOffset
> --
> 2.7.4
>
next prev parent reply other threads:[~2017-02-10 10:19 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-08 11:55 [PATCH v2 00/14] arm64+ARM: efi: PE/COFF cleanup/hardening Ard Biesheuvel
2017-02-08 11:55 ` [kernel-hardening] " Ard Biesheuvel
2017-02-08 11:55 ` Ard Biesheuvel
2017-02-08 11:55 ` [PATCH v2 01/14] include: pe.h: allow for use in assembly Ard Biesheuvel
2017-02-08 11:55 ` [kernel-hardening] " Ard Biesheuvel
2017-02-08 11:55 ` Ard Biesheuvel
2017-02-08 11:55 ` [PATCH v2 02/14] include: pe.h: add some missing definitions Ard Biesheuvel
2017-02-08 11:55 ` [kernel-hardening] " Ard Biesheuvel
2017-02-08 11:55 ` Ard Biesheuvel
2017-02-08 11:55 ` [PATCH v2 03/14] arm64: efi: move EFI header and related data to a separate .S file Ard Biesheuvel
2017-02-08 11:55 ` [kernel-hardening] " Ard Biesheuvel
2017-02-08 11:55 ` Ard Biesheuvel
2017-02-10 10:10 ` Mark Rutland
2017-02-10 10:10 ` [kernel-hardening] " Mark Rutland
2017-02-10 10:10 ` Mark Rutland
2017-02-08 11:55 ` [PATCH v2 04/14] arm64: efi: clean up Image header after PE header has been split off Ard Biesheuvel
2017-02-08 11:55 ` [kernel-hardening] " Ard Biesheuvel
2017-02-08 11:55 ` Ard Biesheuvel
2017-02-10 10:11 ` Mark Rutland
2017-02-10 10:11 ` [kernel-hardening] " Mark Rutland
2017-02-10 10:11 ` Mark Rutland
2017-02-10 14:30 ` Ard Biesheuvel
2017-02-10 14:30 ` [kernel-hardening] " Ard Biesheuvel
2017-02-10 14:30 ` Ard Biesheuvel
2017-02-08 11:55 ` [PATCH v2 05/14] arm64: efi: remove forbidden values from the PE/COFF header Ard Biesheuvel
2017-02-08 11:55 ` [kernel-hardening] " Ard Biesheuvel
2017-02-08 11:55 ` Ard Biesheuvel
2017-02-10 10:13 ` Mark Rutland
2017-02-10 10:13 ` [kernel-hardening] " Mark Rutland
2017-02-10 10:13 ` Mark Rutland
2017-02-10 14:31 ` Ard Biesheuvel
2017-02-10 14:31 ` [kernel-hardening] " Ard Biesheuvel
2017-02-10 14:31 ` Ard Biesheuvel
2017-02-08 11:55 ` [PATCH v2 06/14] arm64: efi: remove pointless dummy .reloc section Ard Biesheuvel
2017-02-08 11:55 ` [kernel-hardening] " Ard Biesheuvel
2017-02-08 11:55 ` Ard Biesheuvel
2017-02-08 11:55 ` [PATCH v2 07/14] arm64: efi: replace open coded constants with symbolic ones Ard Biesheuvel
2017-02-08 11:55 ` [kernel-hardening] " Ard Biesheuvel
2017-02-08 11:55 ` Ard Biesheuvel
2017-02-10 10:19 ` Mark Rutland [this message]
2017-02-10 10:19 ` [kernel-hardening] " Mark Rutland
2017-02-10 10:19 ` Mark Rutland
2017-02-08 11:55 ` [PATCH v2 08/14] arm64: efi: split Image code and data into separate PE/COFF sections Ard Biesheuvel
2017-02-08 11:55 ` [kernel-hardening] " Ard Biesheuvel
2017-02-08 11:55 ` Ard Biesheuvel
[not found] ` <1486554947-3964-9-git-send-email-ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2017-02-10 10:49 ` Mark Rutland
2017-02-10 10:49 ` [kernel-hardening] " Mark Rutland
2017-02-10 10:49 ` Mark Rutland
2017-02-10 14:28 ` Ard Biesheuvel
2017-02-10 14:28 ` [kernel-hardening] " Ard Biesheuvel
2017-02-10 14:28 ` Ard Biesheuvel
2017-02-08 11:55 ` [PATCH v2 09/14] arm: compressed: put zImage header and EFI header in dedicated section Ard Biesheuvel
2017-02-08 11:55 ` [kernel-hardening] " Ard Biesheuvel
2017-02-08 11:55 ` Ard Biesheuvel
2017-02-08 11:55 ` [PATCH v2 10/14] arm: efi: remove forbidden values from the PE/COFF header Ard Biesheuvel
2017-02-08 11:55 ` [kernel-hardening] " Ard Biesheuvel
2017-02-08 11:55 ` Ard Biesheuvel
2017-02-08 11:55 ` [PATCH v2 11/14] arm: efi: remove pointless dummy .reloc section Ard Biesheuvel
2017-02-08 11:55 ` [kernel-hardening] " Ard Biesheuvel
2017-02-08 11:55 ` Ard Biesheuvel
2017-02-08 11:55 ` [PATCH v2 12/14] arm: efi: replace open coded constants with symbolic ones Ard Biesheuvel
2017-02-08 11:55 ` [kernel-hardening] " Ard Biesheuvel
2017-02-08 11:55 ` Ard Biesheuvel
2017-02-08 11:55 ` [PATCH v2 13/14] arm: efi: split zImage code and data into separate PE/COFF sections Ard Biesheuvel
2017-02-08 11:55 ` [kernel-hardening] " Ard Biesheuvel
2017-02-08 11:55 ` Ard Biesheuvel
2017-02-08 11:55 ` [PATCH v2 14/14] arm: efi: add PE/COFF debug table to EFI header Ard Biesheuvel
2017-02-08 11:55 ` [kernel-hardening] " Ard Biesheuvel
2017-02-08 11:55 ` Ard Biesheuvel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170210101923.GE28753@leverpostej \
--to=mark.rutland@arm.com \
--cc=ard.biesheuvel@linaro.org \
--cc=catalin.marinas@arm.com \
--cc=kernel-hardening@lists.openwall.com \
--cc=labbott@fedoraproject.org \
--cc=leif.lindholm@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux@armlinux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.