Set spliced LOAD segment's memsz equal to filesz.
commitb344e78c65330d3b2d4f767e91349f2a6004e960
authorsimonb <simonb@chromium.org>
Thu, 18 Sep 2014 12:31:17 +0000 (18 05:31 -0700)
committerCommit bot <commit-bot@chromium.org>
Thu, 18 Sep 2014 12:31:26 +0000 (18 12:31 +0000)
tree7ac702cea1e7c43d53a843607a4d78c2bb7f3a0b
parent694cd937163f3eb45a2e52dd7da7899c2c9db146
Set spliced LOAD segment's memsz equal to filesz.

Current packing sets the spliced LOAD segment's memsz to larger than
its filesz.  This causes the runtime linker to create a 'zero' mapping
to pad from filesz to memsz.

This isn't a problem -- the mapping sits on already reserved address
space and uses no real memory -- but 'null' mappings like this appear
in /proc/pid/maps and can disrupt or confuse tools which read and
parse it, for example Breakpad.

This change makes the spliced LOAD segment's memsz and filesz equal.
It also tidies code a little so that it is now more obvious when
filesz is equal to memsz, and vaddr is equal to paddr.

Also, rebuild test data to match.

BUG=385553

Review URL: https://codereview.chromium.org/571333003

Cr-Commit-Position: refs/heads/master@{#295459}
tools/relocation_packer/src/elf_file.cc
tools/relocation_packer/test_data/elf_file_unittest_relocs_arm32.so
tools/relocation_packer/test_data/elf_file_unittest_relocs_arm32_packed.so
tools/relocation_packer/test_data/elf_file_unittest_relocs_arm64.so
tools/relocation_packer/test_data/elf_file_unittest_relocs_arm64_packed.so