diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2005-09-30 21:29:27 (GMT) |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2005-09-30 21:29:27 (GMT) |
commit | ddf3b787d77324f61afb86816c0393bf65130b10 (patch) | |
tree | 11a904183125cb33d0ae6faaf967e1c8d8d99933 | |
parent | d5afac8e0378cd874899218995dcb485cc8c4f63 (diff) | |
download | patchelf-ddf3b787d77324f61afb86816c0393bf65130b10.zip patchelf-ddf3b787d77324f61afb86816c0393bf65130b10.tar.gz patchelf-ddf3b787d77324f61afb86816c0393bf65130b10.tar.bz2 |
* Clear out trailing and padding space.
-rw-r--r-- | src/patchelf.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/patchelf.cc b/src/patchelf.cc index ae7de10..62ef22f 100644 --- a/src/patchelf.cc +++ b/src/patchelf.cc @@ -260,13 +260,18 @@ static void rewriteSections() if (neededPages * pageSize > startPage) error("virtual address space underrun!"); startPage -= neededPages * pageSize; + startOffset += neededPages * pageSize; shiftFile(neededPages, startPage); } - /* Write out the replaced sections. */ + /* Clear out the free space. */ Elf32_Off curOff = sizeof(Elf32_Ehdr) + phdrs.size() * sizeof(Elf32_Phdr); + memset(contents + curOff, 0, startOffset - curOff); + + + /* Write out the replaced sections. */ for (ReplacedSections::iterator i = replacedSections.begin(); i != replacedSections.end(); ++i) { |