From f7fc8a95beb1337e23f146cad8086c1fc05902ee Mon Sep 17 00:00:00 2001 From: David Pursehouse Date: Tue, 13 Nov 2012 04:00:28 +0900 Subject: [PATCH] Handle XML errors when parsing the manifest Catch ExpatError and exit gracefully with an error message, rather than exiting with a python traceback. Change-Id: Ifd0a7762aab4e8de63dab8a66117170a05586866 --- manifest_xml.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/manifest_xml.py b/manifest_xml.py index cdee87a6..bf981f03 100644 --- a/manifest_xml.py +++ b/manifest_xml.py @@ -310,7 +310,11 @@ class XmlManifest(object): self._loaded = True def _ParseManifestXml(self, path, include_root): - root = xml.dom.minidom.parse(path) + try: + root = xml.dom.minidom.parse(path) + except (OSError, xml.parsers.expat.ExpatError), e: + raise ManifestParseError("error parsing manifest %s: %s" % (path, e)) + if not root or not root.childNodes: raise ManifestParseError("no root node in %s" % (path,))