diff options
author | Tony Puccinelli | 2010-07-28 05:18:46 +0000 |
---|---|---|
committer | Tony Puccinelli | 2010-07-28 05:18:46 +0000 |
commit | 9d236ac4d040cacdebd4e12e15a73279acfaf8f0 (patch) | |
tree | 89c8f5934e2a3420dcc9637683d2e8596e6a7a5b /backends/plugins | |
parent | ff78cf6771fbbb6a7fd26d00db36c4c72d7a71db (diff) | |
download | scummvm-rg350-9d236ac4d040cacdebd4e12e15a73279acfaf8f0.tar.gz scummvm-rg350-9d236ac4d040cacdebd4e12e15a73279acfaf8f0.tar.bz2 scummvm-rg350-9d236ac4d040cacdebd4e12e15a73279acfaf8f0.zip |
added check for MIPS machine type in the 'readElfHeader' method
svn-id: r51403
Diffstat (limited to 'backends/plugins')
-rw-r--r-- | backends/plugins/elf-loader.cpp | 5 | ||||
-rw-r--r-- | backends/plugins/elf-loader.h | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/backends/plugins/elf-loader.cpp b/backends/plugins/elf-loader.cpp index afb69714fa..33f97f5586 100644 --- a/backends/plugins/elf-loader.cpp +++ b/backends/plugins/elf-loader.cpp @@ -93,7 +93,12 @@ bool DLObject::readElfHeader(Common::SeekableReadStream* DLFile, Elf32_Ehdr *ehd if (DLFile->read(ehdr, sizeof(*ehdr)) != sizeof(*ehdr) || memcmp(ehdr->e_ident, ELFMAG, SELFMAG) || // Check MAGIC ehdr->e_type != ET_EXEC || // Check for executable +#ifdef ARM_TARGET ehdr->e_machine != EM_ARM || // Check for ARM machine type +#endif +#ifdef MIPS_TARGET + ehdr->e_machine != EM_MIPS || +#endif ehdr->e_phentsize < sizeof(Elf32_Phdr) || // Check for size of program header ehdr->e_shentsize != sizeof(Elf32_Shdr)) { // Check for size of section header seterror("Invalid file type."); diff --git a/backends/plugins/elf-loader.h b/backends/plugins/elf-loader.h index 1bbcbc4b78..3f33b681bf 100644 --- a/backends/plugins/elf-loader.h +++ b/backends/plugins/elf-loader.h @@ -34,6 +34,10 @@ #include "shorts-segment-manager.h" #endif +#if defined(__DS__) +#define ARM_TARGET +#endif + #define MAXDLERRLEN 80 class DLObject { |