diff options
author | Abhijeet Kasurde <akasurde@redhat.com> | 2016-05-09 10:31:24 +0530 |
---|---|---|
committer | Martin Basti <mbasti@redhat.com> | 2016-05-11 14:51:56 +0200 |
commit | 2df25cb359723dd72077c60a12bc037d5c77f931 (patch) | |
tree | f9fdfced00691de37055ffecca94885cf5f32fa9 /ipaserver/plugins/dogtag.py | |
parent | 84e5065b398eec722b30123319dc7725286a2a74 (diff) | |
download | freeipa-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>
Diffstat (limited to 'ipaserver/plugins/dogtag.py')
-rw-r--r-- | ipaserver/plugins/dogtag.py | 9 |
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)) |