aboutsummaryrefslogtreecommitdiff
path: root/backends/plugins/elf/elf-provider.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/plugins/elf/elf-provider.cpp')
-rw-r--r--backends/plugins/elf/elf-provider.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/backends/plugins/elf/elf-provider.cpp b/backends/plugins/elf/elf-provider.cpp
index 8629de6c45..d1c8f6aa05 100644
--- a/backends/plugins/elf/elf-provider.cpp
+++ b/backends/plugins/elf/elf-provider.cpp
@@ -112,6 +112,19 @@ bool ELFPlugin::loadPlugin() {
return false;
}
+ CharFunc buildDateFunc = (CharFunc)findSymbol("PLUGIN_getBuildDate");
+ if (!buildDateFunc) {
+ unloadPlugin();
+ warning("elfloader: plugin '%s' is missing symbols", _filename.c_str());
+ return false;
+ }
+
+ if (strncmp(gScummVMPluginBuildDate, buildDateFunc(), strlen(gScummVMPluginBuildDate))) {
+ unloadPlugin();
+ warning("elfloader: plugin '%s' has a different build date", _filename.c_str());
+ return false;
+ }
+
bool ret = DynamicPlugin::loadPlugin();
#ifdef ELF_LOADER_CXA_ATEXIT