When saving a previously loaded ELF file, don't shrink segments' memory size

This commit is contained in:
Martin Bickel 2016-12-28 19:27:30 +01:00 committed by Serge Lamikhov-Center
parent 213dbedac2
commit d800c7b295

View File

@ -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);
}