From d800c7b2958616df20fbd0ff29f3648cb1d5e05b Mon Sep 17 00:00:00 2001 From: Martin Bickel <martin.bickel@continental-corporation.com> Date: Wed, 28 Dec 2016 19:27:30 +0100 Subject: [PATCH] When saving a previously loaded ELF file, don't shrink segments' memory size --- elfio/elfio.hpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/elfio/elfio.hpp b/elfio/elfio.hpp index c983a9e..63512b3 100644 --- a/elfio/elfio.hpp +++ b/elfio/elfio.hpp @@ -728,7 +728,15 @@ class elfio } seg->set_file_size( segment_filesize ); - seg->set_memory_size( segment_memory ); + + // If we already have a memory size from loading an elf file (value > 0), + // it must not shrink! + // Memory size may be bigger than file size and it is the loader's job to do something + // with the surplus bytes in memory, like initializing them with a defined value. + if ( seg->get_memory_size() < segment_memory ) { + seg->set_memory_size( segment_memory ); + } + seg->set_offset(seg_start_pos); } -- GitLab