Add warning for ignored loadable ELF segments.
base/loader/elf_object.cc: Print warning if there are more than two loadable segments. We currently assume there are at most two (text & data), and that's held so far, but it would be nice not to silently ignore others. --HG-- extra : convert_revision : 1b3e693e95ba1210b09528b97819a7fa86426edc
This commit is contained in:
parent
7359e2df01
commit
31a20c88c5
1 changed files with 6 additions and 4 deletions
|
@ -75,8 +75,7 @@ ElfObject::tryFile(const string &fname, int fd, size_t len, uint8_t *data)
|
|||
DPRINTFR(Loader, "Not ELF\n");
|
||||
elf_end(elf);
|
||||
return NULL;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
//Detect the architecture
|
||||
//Versioning issues in libelf need to be resolved to get the correct
|
||||
//SPARC constants.
|
||||
|
@ -213,8 +212,7 @@ ElfObject::ElfObject(const string &_filename, int _fd,
|
|||
bss.size = phdr.p_memsz - phdr.p_filesz;
|
||||
bss.baseAddr = phdr.p_vaddr + phdr.p_filesz;
|
||||
bss.fileImage = NULL;
|
||||
}
|
||||
else if (data.size == 0) { // have text, this must be data
|
||||
} else if (data.size == 0) { // have text, this must be data
|
||||
data.baseAddr = phdr.p_vaddr;
|
||||
data.size = phdr.p_filesz;
|
||||
data.fileImage = fileData + phdr.p_offset;
|
||||
|
@ -227,6 +225,10 @@ ElfObject::ElfObject(const string &_filename, int _fd,
|
|||
bss.size = phdr.p_memsz - phdr.p_filesz;
|
||||
bss.baseAddr = phdr.p_vaddr + phdr.p_filesz;
|
||||
bss.fileImage = NULL;
|
||||
} else {
|
||||
warn("More than two loadable segments in ELF object.");
|
||||
warn("Ignoring segment @ 0x%x length 0x%x.",
|
||||
phdr.p_vaddr, phdr.p_filesz);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue