From 30acd574505f61ac5787e141957c98de31b44d1f Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Thu, 29 Apr 2021 04:57:30 +0200 Subject: [PATCH] Fix possible infinite loop when `bsconfig.json` is not found. Can trigger on Windows. --- analysis/src/Packages.ml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/analysis/src/Packages.ml b/analysis/src/Packages.ml index bbee44ee2..91c356302 100644 --- a/analysis/src/Packages.ml +++ b/analysis/src/Packages.ml @@ -107,7 +107,9 @@ let findRoot ~uri packagesByRoot = if path = "/" then None else if Hashtbl.mem packagesByRoot path then Some (`Root path) else if Files.exists (path /+ "bsconfig.json") then Some (`Bs path) - else loop (Filename.dirname path) + else + let parent = Filename.dirname path in + if parent = path then (* reached root *) None else loop parent in loop (Filename.dirname path)