Skip to content

Commit

Permalink
fix: Use proper reference path validation for resource generation
Browse files Browse the repository at this point in the history
  • Loading branch information
jeromelaban committed Nov 28, 2021
1 parent 63d5ab5 commit 18a4d6d
Showing 1 changed file with 21 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -452,7 +452,7 @@ private string InnerGenerateFile()
}
else
{
if (_generationRunFileInfo.RunInfo.Manager.PreviousRuns.FirstOrDefault(r => r.GetRunFileInfo(_fileUniqueId)?.ComponentCode != null) is var runFileInfo)
if (_generationRunFileInfo.RunInfo.Manager.PreviousRuns.FirstOrDefault(r => r.GetRunFileInfo(_fileUniqueId)?.ComponentCode != null) is { } runFileInfo)
{
var generationRunFileInfo = runFileInfo.GetRunFileInfo(_fileUniqueId);

Expand Down Expand Up @@ -635,12 +635,30 @@ private void GenerateResourceLoader(IndentedStringBuilder writer)

foreach (var reference in _metadataHelper.Compilation.ExternalReferences)
{
if (!File.Exists(reference.Display))
string? GetFilePath()
{
if(reference is PortableExecutableReference per && File.Exists(per.FilePath))
{
return per.FilePath;
}
else if (File.Exists(reference.Display))
{
return reference.Display;
}
else
{
return null;
}
}

var referenceFilePath = GetFilePath();

if (referenceFilePath == null)
{
throw new InvalidOperationException($"The reference {reference.Display} could not be found in {reference.Display}");
}

using var stream = File.OpenRead(reference.Display!);
using var stream = File.OpenRead(referenceFilePath);
var asm = Mono.Cecil.AssemblyDefinition.ReadAssembly(stream);

if (asm.MainModule.HasResources && asm.MainModule.Resources.Any(r => r.Name.EndsWith("upri")))
Expand Down

0 comments on commit 18a4d6d

Please sign in to comment.