Re: [PATCH] elf: fix "start_code" evaluation

From: Andrew Morton
Date: Thu May 23 2019 - 14:47:21 EST


On Thu, 23 May 2019 20:57:36 +0300 Alexey Dobriyan <adobriyan@xxxxxxxxx> wrote:

> Only executable ELF program headers should change ->start_code.
>
> ...
>
> --- a/fs/binfmt_elf.c
> +++ b/fs/binfmt_elf.c
> @@ -1026,7 +1026,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
> }
> }
> k = elf_ppnt->p_vaddr;
> - if (k < start_code)
> + if ((elf_ppnt->p_flags & PF_X) && k < start_code)
> start_code = k;
> if (start_data < k)
> start_data = k;

What problem does this solve? How does it alter runtime behaviour?
How do we know it won't break anything?