From 2df25cb359723dd72077c60a12bc037d5c77f931 Mon Sep 17 00:00:00 2001 From: Abhijeet Kasurde Date: Mon, 9 May 2016 10:31:24 +0530 Subject: [PATCH] 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 Reviewed-By: Martin Basti --- ipaserver/plugins/dogtag.py | 9 +++++++-- 1 file 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 # John Dennis # Fraser Tweedale +# Abhijeet Kasurde # -# 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))