Re: [PATCH 0/3] binfmt_elf: Clean up codes related to total_size passed into elf_map()

From: Baoquan He
Date: Tue Nov 07 2017 - 07:00:25 EST


Hi maintainers and experts,

Any comment about this patchset?

At least for patch 2, I think we can correct it since we do not have to
take the total_size way for PIE programs which are MAP_FIXED and are
loaded offset from ELF_ET_DYN_BASE. That is making code a little
confusing.

About patch 3, it's pointed out in an Redhat internal patch reviewing. I
am fine if no one like it.

If approved, I can update the git log to make it better and repost.

Thanks
Baoquan

On 10/06/17 at 11:37am, Baoquan He wrote:
> Currently total_size passed into elf_map() is non-zero only for dynamic
> loader, either in load_elf_interp(), or in load_elf_binary() for ET_DYN
> without INTERP case. Now PIE programs are loaded offset from ELF_ET_DYN_BASE,
> and map flags has been set as MAP_FIXED, no need to use tatal_size strategy.
>
> And in elf_map(), Oleg pointed out that the mmap(total_size) + munmap(extra_size)
> way looks very ugly. We can search the unmapped area of total_size big,
> then only map the 1st PT_LOAD segment with the searched address.
>
> In this patchset, clean up them all.
>
> Baoquan He (3):
> binfmt_elf: Clean up the variable name of map flags
> binfmt_elf: Get the total_size only for dynamic loader in
> load_elf_binary()
> binfmt_elf: Search an unmapped area with total_size but not map the
> whole image
>
> fs/binfmt_elf.c | 50 +++++++++++++++++++++++++++-----------------------
> 1 file changed, 27 insertions(+), 23 deletions(-)
>
> --
> 2.5.5
>