From 7a70bc33aca8428f38c70c6b85bba29977a41aaf Mon Sep 17 00:00:00 2001 From: vijaya-erukala Date: Thu, 20 Sep 2012 12:08:57 +0530 Subject: Handle invalid xml request to return BadRequest Handled ExpatError,LookupError to return BadRequest if the user inputs the invalid xml fixes bug 1032092 Change-Id: I7374532d91e3d7675bc80730031a195f50bb2abc --- nova/api/openstack/wsgi.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'nova/api') diff --git a/nova/api/openstack/wsgi.py b/nova/api/openstack/wsgi.py index 33db3e714..a7a3823e9 100644 --- a/nova/api/openstack/wsgi.py +++ b/nova/api/openstack/wsgi.py @@ -881,8 +881,17 @@ class Resource(wsgi.Application): # function. If we try to audit __call__(), we can # run into troubles due to the @webob.dec.wsgify() # decorator. - return self._process_stack(request, action, action_args, + try: + return self._process_stack(request, action, action_args, content_type, body, accept) + except expat.ExpatError: + msg = _("Invalid XML in request body") + return Fault(webob.exc.HTTPBadRequest(explanation=msg)) + except LookupError as e: + #NOTE(Vijaya Erukala): XML input such as + # + # raises LookupError: unknown encoding: TF-8 + return Fault(webob.exc.HTTPBadRequest(explanation=unicode(e))) def _process_stack(self, request, action, action_args, content_type, body, accept): -- cgit