summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAbhijeet Kasurde <akasurde@redhat.com>2016-05-09 10:31:24 +0530
committerMartin Basti <mbasti@redhat.com>2016-05-11 14:51:56 +0200
commit2df25cb359723dd72077c60a12bc037d5c77f931 (patch)
treef9fdfced00691de37055ffecca94885cf5f32fa9
parent84e5065b398eec722b30123319dc7725286a2a74 (diff)
downloadfreeipa-2df25cb359723dd72077c60a12bc037d5c77f931.tar.gz
freeipa-2df25cb359723dd72077c60a12bc037d5c77f931.tar.xz
freeipa-2df25cb359723dd72077c60a12bc037d5c77f931.zip
Added exception handling for mal-formatted XML Parsing
In order to handle mal-formatted XML returned from Dogtag, added exception handling around etree.fromstring function. https://fedorahosted.org/freeipa/ticket/5885 Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com> Reviewed-By: Martin Basti <mbasti@redhat.com>
-rw-r--r--ipaserver/plugins/dogtag.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/ipaserver/plugins/dogtag.py b/ipaserver/plugins/dogtag.py
index 3e5a07de4..162afbf21 100644
--- a/ipaserver/plugins/dogtag.py
+++ b/ipaserver/plugins/dogtag.py
@@ -5,8 +5,9 @@
# Rob Crittenden <rcritten@@redhat.com>
# John Dennis <jdennis@redhat.com>
# Fraser Tweedale <ftweedal@redhat.com>
+# Abhijeet Kasurde <akasurde@redhat.com>
#
-# Copyright (C) 2014, 2015 Red Hat
+# Copyright (C) 2014-2016 Red Hat, Inc.
# see file 'COPYING' for use and warranty information
#
# This program is free software; you can redistribute it and/or modify
@@ -1380,7 +1381,11 @@ class ra(rabase.rabase):
to get the parsing result as a dict of key/value pairs.
'''
parser = etree.XMLParser()
- doc = etree.fromstring(xml_text, parser)
+ try:
+ doc = etree.fromstring(xml_text, parser)
+ except etree.XMLSyntaxError as e:
+ self.raise_certificate_operation_error('get_parse_result_xml',
+ detail=str(e))
result = parse_func(doc)
self.debug("%s() xml_text:\n%s\n"
"parse_result:\n%s" % (parse_func.__name__, xml_text, result))