From 67f6d842fab6d3ac8c949721be8e131cf6b17578 Mon Sep 17 00:00:00 2001 From: Pavel Labath Date: Thu, 7 Feb 2019 14:03:43 +0000 Subject: [PATCH] use_lldb_suite.py: Fix potential infinite loop The loop searching for use_lldb_suite_root had a bug where if the marker file happened to be missing, it would enter an infinite loop. While this shouldn't happen in normal circumstances, it can happen accidentally, and debugging it is not very pleasant. The loop had an exit condition, but it was incorrent (os.path.dirname returning None). This will never happen as dirname will just return the same folder over and over again once it reaches the root folder. This fixes the exit condition to account for that. llvm-svn: 353406 --- lldb/scripts/use_lldb_suite.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lldb/scripts/use_lldb_suite.py b/lldb/scripts/use_lldb_suite.py index 6e24b9da8d34..a1a2e8b93679 100644 --- a/lldb/scripts/use_lldb_suite.py +++ b/lldb/scripts/use_lldb_suite.py @@ -6,9 +6,10 @@ import sys def find_lldb_root(): lldb_root = os.path.dirname(inspect.getfile(inspect.currentframe())) while True: - lldb_root = os.path.dirname(lldb_root) - if lldb_root is None: - return None + parent = os.path.dirname(lldb_root) + if parent == lldb_root: # dirname('/') == '/' + break + lldb_root = parent test_path = os.path.join(lldb_root, "use_lldb_suite_root.py") if os.path.isfile(test_path):