diff --git a/UnitystationLauncher/ContentScanning/Scanners/MemberReferenceScanner.cs b/UnitystationLauncher/ContentScanning/Scanners/MemberReferenceScanner.cs index fda3e62..f717f80 100644 --- a/UnitystationLauncher/ContentScanning/Scanners/MemberReferenceScanner.cs +++ b/UnitystationLauncher/ContentScanning/Scanners/MemberReferenceScanner.cs @@ -12,7 +12,11 @@ namespace UnitystationLauncher.ContentScanning.Scanners; internal static class MemberReferenceScanner { // Using the Parallel implementation of this - internal static void CheckMemberReferences(SandboxConfig sandboxConfig, IEnumerable members, ConcurrentBag errors) + internal static void CheckMemberReferences(SandboxConfig sandboxConfig, + IEnumerable members, + ConcurrentBag errors, + string asmName + ) { Parallel.ForEach(members, memberRef => { @@ -28,7 +32,8 @@ internal static void CheckMemberReferences(SandboxConfig sandboxConfig, IEnumera // Technically this error isn't necessary since we have an earlier pass // checking all referenced types. That should have caught this // We still need the typeCfg so that's why we're checking. Might as well. - errors.Add(new($"Access to type not allowed: {baseTypeReferenced}")); + errors.Add(new($"Access to type not allowed: {baseTypeReferenced} in Assembly {asmName}")); + return; } diff --git a/UnitystationLauncher/Services/AssemblyTypeCheckerService.cs b/UnitystationLauncher/Services/AssemblyTypeCheckerService.cs index 3356097..2969753 100644 --- a/UnitystationLauncher/Services/AssemblyTypeCheckerService.cs +++ b/UnitystationLauncher/Services/AssemblyTypeCheckerService.cs @@ -149,7 +149,7 @@ public async Task CheckAssemblyTypesAsync(FileInfo diskPath, DirectoryInfo LogMessage = $"Type abuse... {fullStopwatch.ElapsedMilliseconds}ms" }); - MemberReferenceScanner.CheckMemberReferences(loadedConfig, members, errors); + MemberReferenceScanner.CheckMemberReferences(loadedConfig, members, errors, asmName); scanLog.Invoke(new() { LogMessage = errors.IsEmpty ? "No sandbox violations." : $"Total violations: {errors.Count}"