[Lldb-commits] [lldb] r353406 - use_lldb_suite.py: Fix potential infinite loop

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Thu Feb 7 06:03:44 PST 2019

Author: labath
Date: Thu Feb  7 06:03:43 2019
New Revision: 353406

URL: http://llvm.org/viewvc/llvm-project?rev=353406&view=rev
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.


Modified: lldb/trunk/scripts/use_lldb_suite.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/use_lldb_suite.py?rev=353406&r1=353405&r2=353406&view=diff
--- lldb/trunk/scripts/use_lldb_suite.py (original)
+++ lldb/trunk/scripts/use_lldb_suite.py Thu Feb  7 06:03:43 2019
@@ -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):

More information about the lldb-commits mailing list