From af9c5c6013b4e661cda0ff8fed40a50ae62d5a74 Mon Sep 17 00:00:00 2001 From: Andrey Akinshin Date: Mon, 16 Oct 2023 15:39:35 +0200 Subject: [PATCH] Exception handling in DotNetCliGenerator.GetRootDirectory, fix #2436 --- .../DotNetCli/DotNetCliGenerator.cs | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/BenchmarkDotNet/Toolchains/DotNetCli/DotNetCliGenerator.cs b/src/BenchmarkDotNet/Toolchains/DotNetCli/DotNetCliGenerator.cs index 47ff074fc3..a432fbf881 100644 --- a/src/BenchmarkDotNet/Toolchains/DotNetCli/DotNetCliGenerator.cs +++ b/src/BenchmarkDotNet/Toolchains/DotNetCli/DotNetCliGenerator.cs @@ -61,17 +61,25 @@ internal static bool GetProjectRootDirectory(out DirectoryInfo directoryInfo) return GetRootDirectory(IsRootProjectFolder, out directoryInfo); } - internal static bool GetRootDirectory(Func condition, out DirectoryInfo directoryInfo) + internal static bool GetRootDirectory(Func condition, out DirectoryInfo? directoryInfo) { - directoryInfo = new DirectoryInfo(Directory.GetCurrentDirectory()); - while (directoryInfo != null) + directoryInfo = null; + try { - if (condition(directoryInfo)) + directoryInfo = new DirectoryInfo(Directory.GetCurrentDirectory()); + while (directoryInfo != null) { - return true; - } + if (condition(directoryInfo)) + { + return true; + } - directoryInfo = directoryInfo.Parent; + directoryInfo = directoryInfo.Parent; + } + } + catch + { + return false; } return false;