summaryrefslogtreecommitdiff
path: root/src/SMAPI/Framework/ModLoading
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <github@jplamondonw.com>2017-11-27 22:19:23 -0500
committerJesse Plamondon-Willard <github@jplamondonw.com>2017-11-27 22:19:23 -0500
commit5ae28b2a8caf764e0df0e3bfeca8941db5f4be87 (patch)
tree72f029b667f5a8736497c8ab95a3e9e33b8387db /src/SMAPI/Framework/ModLoading
parent49bc98fa4c2432277647c968f57e81b63c474860 (diff)
downloadSMAPI-5ae28b2a8caf764e0df0e3bfeca8941db5f4be87.tar.gz
SMAPI-5ae28b2a8caf764e0df0e3bfeca8941db5f4be87.tar.bz2
SMAPI-5ae28b2a8caf764e0df0e3bfeca8941db5f4be87.zip
fix error when a mod has an invalid filename in the EntryDLL manifest field (#402)
Diffstat (limited to 'src/SMAPI/Framework/ModLoading')
-rw-r--r--src/SMAPI/Framework/ModLoading/ModResolver.cs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/SMAPI/Framework/ModLoading/ModResolver.cs b/src/SMAPI/Framework/ModLoading/ModResolver.cs
index d0ef1b08..9802d9e9 100644
--- a/src/SMAPI/Framework/ModLoading/ModResolver.cs
+++ b/src/SMAPI/Framework/ModLoading/ModResolver.cs
@@ -142,6 +142,18 @@ namespace StardewModdingAPI.Framework.ModLoading
continue;
}
+ // validate DLL value
+ if (string.IsNullOrWhiteSpace(mod.Manifest.EntryDll))
+ {
+ mod.SetStatus(ModMetadataStatus.Failed, "its manifest has no EntryDLL field.");
+ continue;
+ }
+ if (mod.Manifest.EntryDll.Intersect(Path.GetInvalidFileNameChars()).Any())
+ {
+ mod.SetStatus(ModMetadataStatus.Failed, $"its manifest has invalid filename '{mod.Manifest.EntryDll}' for the EntryDLL field.");
+ continue;
+ }
+
// validate DLL path
string assemblyPath = Path.Combine(mod.DirectoryPath, mod.Manifest.EntryDll);
if (!File.Exists(assemblyPath))