Issue #26873: xmlrpclib now raises ResponseError on unsupported type tags
instead of silently return incorrect result.
diff --git a/Lib/xmlrpclib.py b/Lib/xmlrpclib.py
index 3a2c0bf..e072f71 100644
--- a/Lib/xmlrpclib.py
+++ b/Lib/xmlrpclib.py
@@ -784,6 +784,7 @@
self._stack = []
self._marks = []
self._data = []
+ self._value = False
self._methodname = None
self._encoding = "utf-8"
self.append = self._stack.append
@@ -814,6 +815,8 @@
if tag == "array" or tag == "struct":
self._marks.append(len(self._stack))
self._data = []
+ if self._value and tag not in self.dispatch:
+ raise ResponseError("unknown tag %r" % tag)
self._value = (tag == "value")
def data(self, text):