diff --git a/src/PerfView/SymbolReaderHttpHandler.cs b/src/PerfView/SymbolReaderHttpHandler.cs index a362f8096..d030377b6 100644 --- a/src/PerfView/SymbolReaderHttpHandler.cs +++ b/src/PerfView/SymbolReaderHttpHandler.cs @@ -436,14 +436,28 @@ private static string GetFileOnEnvironmentPath(string fileName) { foreach (string folder in Environment.GetEnvironmentVariable("PATH").Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries)) { - string path = Path.Combine(folder, fileName); - if (File.Exists(path)) + if (TryCombinePaths(folder, fileName, out var path) && File.Exists(path)) { return path; } } return null; + + // PATH environment variable may contain invalid paths/characters. + static bool TryCombinePaths(string path1, string path2, out string result) + { + try + { + result = Path.Combine(path1, path2); + return true; + } + catch (ArgumentException) + { + result = default; + return false; + } + } } ///