Add a safe_minidom_parse_string function.
Adds a new utils.safe_minidom_parse_string function and updates external API facing Cinder modules to use it. This ensures we have safe defaults on our incoming API XML parsing. Internally safe_minidom_parse_string uses a ProtectedExpatParser class to disable DTDs and entities from being parsed when using minidom. Fixes LP Bug #1100282. Change-Id: Iff8340033c8e8db58184944a1bf705e16b8b3e03
This commit is contained in:
@@ -13,7 +13,6 @@
|
||||
# under the License.
|
||||
|
||||
import webob
|
||||
from xml.dom import minidom
|
||||
|
||||
from cinder.api import extensions
|
||||
from cinder.api.openstack import wsgi
|
||||
@@ -22,6 +21,7 @@ from cinder import exception
|
||||
from cinder import flags
|
||||
from cinder.openstack.common import log as logging
|
||||
from cinder.openstack.common.rpc import common as rpc_common
|
||||
from cinder import utils
|
||||
from cinder import volume
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ class VolumeToImageSerializer(xmlutil.TemplateBuilder):
|
||||
class VolumeToImageDeserializer(wsgi.XMLDeserializer):
|
||||
"""Deserializer to handle xml-formatted requests."""
|
||||
def default(self, string):
|
||||
dom = minidom.parseString(string)
|
||||
dom = utils.safe_minidom_parse_string(string)
|
||||
action_node = dom.childNodes[0]
|
||||
action_name = action_node.tagName
|
||||
|
||||
|
||||
Reference in New Issue
Block a user