summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2005-09-30 21:29:27 (GMT)
committerEelco Dolstra <e.dolstra@tudelft.nl>2005-09-30 21:29:27 (GMT)
commitddf3b787d77324f61afb86816c0393bf65130b10 (patch)
tree11a904183125cb33d0ae6faaf967e1c8d8d99933
parentd5afac8e0378cd874899218995dcb485cc8c4f63 (diff)
downloadpatchelf-ddf3b787d77324f61afb86816c0393bf65130b10.zip
patchelf-ddf3b787d77324f61afb86816c0393bf65130b10.tar.gz
patchelf-ddf3b787d77324f61afb86816c0393bf65130b10.tar.bz2
* Clear out trailing and padding space.
-rw-r--r--src/patchelf.cc7
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)
{