aboutsummaryrefslogtreecommitdiff
path: root/backends/plugins
diff options
context:
space:
mode:
authorTony Puccinelli2010-07-28 05:18:46 +0000
committerTony Puccinelli2010-07-28 05:18:46 +0000
commit9d236ac4d040cacdebd4e12e15a73279acfaf8f0 (patch)
tree89c8f5934e2a3420dcc9637683d2e8596e6a7a5b /backends/plugins
parentff78cf6771fbbb6a7fd26d00db36c4c72d7a71db (diff)
downloadscummvm-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.cpp5
-rw-r--r--backends/plugins/elf-loader.h4
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 {