Re: [PATCH] x86: Don't discard .exit.text and .exit.data at link-time

Kees Cook
2020-01-30T19:40:48Z

On Thu, Jan 30, 2020 at 10:00:48AM -0800, H.J. Lu wrote:
> Since .exit.text and .exit.data sections are discarded at runtime, we
> should undefine EXIT_TEXT and EXIT_DATA to exclude .exit.text and
> .exit.data sections from default discarded sections.

This is just a correctness fix, yes? The EXIT_TEXT and EXIT_DATA were
already included before the /DISCARD/ section here, so there's no
behavioral change with this patch, correct?

-Kees

>
> Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
> ---
> arch/x86/kernel/vmlinux.lds.S | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
> index d1b942365d27..fb2c45cb1d1f 100644
> --- a/arch/x86/kernel/vmlinux.lds.S
> +++ b/arch/x86/kernel/vmlinux.lds.S
> @@ -416,6 +416,12 @@ SECTIONS
> STABS_DEBUG
> DWARF_DEBUG
>
> + /* Sections to be discarded. EXIT_TEXT and EXIT_DATA discard at runtime.
> + * not link time. */
> +#undef EXIT_TEXT
> +#define EXIT_TEXT
> +#undef EXIT_DATA
> +#define EXIT_DATA
> DISCARDS
> /DISCARD/ : {
> *(.eh_frame)
> --
> 2.24.1
>

--
Kees Cook