Author: Artem Dergachev
Date: 2020-05-13T14:13:00+03:00
New Revision: 8cbd3f431a919e3398683bb5b72fdd781798bcc8

URL: 
https://github.com/llvm/llvm-project/commit/8cbd3f431a919e3398683bb5b72fdd781798bcc8
DIFF: 
https://github.com/llvm/llvm-project/commit/8cbd3f431a919e3398683bb5b72fdd781798bcc8.diff

LOG: [analyzer] SATestBuild.py: Be defensive against corrupt plist files.

Added: 
    

Modified: 
    clang/utils/analyzer/SATestBuild.py

Removed: 
    


################################################################################
diff  --git a/clang/utils/analyzer/SATestBuild.py 
b/clang/utils/analyzer/SATestBuild.py
index 347f1e2dd5e0..42b2658f5303 100755
--- a/clang/utils/analyzer/SATestBuild.py
+++ b/clang/utils/analyzer/SATestBuild.py
@@ -58,6 +58,7 @@
 import sys
 import threading
 import time
+from xml.parsers.expat import ExpatError
 try:
     import queue
 except ImportError:
@@ -485,10 +486,14 @@ def CleanUpEmptyPlists(SBOutputDir):
     for F in glob.glob(SBOutputDir + "/*/*.plist"):
         P = os.path.join(SBOutputDir, F)
 
-        Data = plistlib.readPlist(P)
-        # Delete empty reports.
-        if not Data['files']:
-            os.remove(P)
+        try:
+            Data = plistlib.readPlist(P)
+            # Delete empty reports.
+            if not Data['files']:
+                os.remove(P)
+                continue
+        except ExpatError as e:
+            print('Error parsing plist file %s: %s' % (P, str(e)))
             continue
 
 


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to