loader: initialize all memory in the ObjectFile objects.
authorAli Saidi <Ali.Saidi@ARM.com>
Fri, 7 Sep 2012 19:20:52 +0000 (14:20 -0500)
committerAli Saidi <Ali.Saidi@ARM.com>
Fri, 7 Sep 2012 19:20:52 +0000 (14:20 -0500)
Some bare metal build flows seem to build binaries that we aren't necessarily
expecting. Initialize everything to 0, so we don't make any assumptions about
what is or isn't in the binary.

src/base/loader/elf_object.cc
src/base/loader/object_file.cc

index e48678bbb21b5d4894cf838b9468e6e4fa2b8f32..f6a18db8a3334e9e096ae654c1a58af8268bad87 100644 (file)
@@ -248,6 +248,7 @@ ElfObject::ElfObject(const string &_filename, int _fd,
 
     // initialize segment sizes to 0 in case they're not present
     text.size = data.size = bss.size = 0;
+    text.baseAddr = data.baseAddr = bss.baseAddr = 0;
 
     int secIdx = 1;
     Elf_Scn *section;
index 420611d83bd23d4029167053a12067bc11e47b55..80fc9c2f949a993b1071401037bb7f7afef229b5 100644 (file)
@@ -53,7 +53,7 @@ ObjectFile::ObjectFile(const string &_filename, int _fd,
                        size_t _len, uint8_t *_data,
                        Arch _arch, OpSys _opSys)
     : filename(_filename), descriptor(_fd), fileData(_data), len(_len),
-      arch(_arch), opSys(_opSys)
+      arch(_arch), opSys(_opSys), globalPtr(0)
 {
 }