---
 yum/update_md.py |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/yum/update_md.py b/yum/update_md.py
index 83e56c6..619250e 100644
--- a/yum/update_md.py
+++ b/yum/update_md.py
@@ -32,6 +32,15 @@ import Errors
 
 import rpmUtils.miscutils
 
+
+def safe_iterparse(filename):
+    """ Works like iterparse, but hides XML errors (prints a warning). """
+    try:
+        for event, elem in safe_iterparse(infile):
+            yield event, elem
+    except SyntaxError: # Bad XML
+        print >> sys.stderr, "File is not valid XML:", filename
+
 class UpdateNoticeException(Exception):
     """ An exception thrown for bad UpdateNotice data. """
     pass
@@ -445,7 +454,7 @@ class UpdateMetadata(object):
         else:   # obj is a file object
             infile = obj
 
-        for event, elem in iterparse(infile):
+        for event, elem in safe_iterparse(infile):
             if elem.tag == 'update':
                 try:
                     un = UpdateNotice(elem)
-- 
1.7.3.4

_______________________________________________
Yum-devel mailing list
Yum-devel@lists.baseurl.org
http://lists.baseurl.org/mailman/listinfo/yum-devel

Reply via email to