avoid breakage with msgpack 0.6.0+, keep old limits, fixes #4220

for the Unpacker class, our msgpack wrapper already enforced own
defaults (identical to msgpack < 0.6.0 defaults) - no problem there.

for the unpack and unpackb functions, this changeset enforces the
same defaults in the wrapper, overriding the msgpack 0.6.0+ new
defaults (which caused breakage as seen in #4220).
This commit is contained in:
Thomas Waldmann 2019-01-05 22:54:35 +01:00
parent 3948763838
commit 2a981ba8eb

View file

@ -117,22 +117,46 @@ class Unpacker(mp_Unpacker):
next = __next__
def unpackb(packed, *, raw=True, encoding=None, unicode_errors=None, **kwargs):
def unpackb(packed, *, raw=True, encoding=None, unicode_errors=None,
max_str_len=2147483647, # 2**32-1
max_bin_len=2147483647,
max_array_len=2147483647,
max_map_len=2147483647,
max_ext_len=2147483647,
**kwargs):
assert raw is True
assert encoding is None
assert unicode_errors is None
try:
return mp_unpackb(packed, raw=raw, encoding=encoding, unicode_errors=unicode_errors, **kwargs)
return mp_unpackb(packed, raw=raw, encoding=encoding, unicode_errors=unicode_errors,
max_str_len=max_str_len,
max_bin_len=max_bin_len,
max_array_len=max_array_len,
max_map_len=max_map_len,
max_ext_len=max_ext_len,
**kwargs)
except Exception as e:
raise UnpackException(e)
def unpack(stream, *, raw=True, encoding=None, unicode_errors=None, **kwargs):
def unpack(stream, *, raw=True, encoding=None, unicode_errors=None,
max_str_len=2147483647, # 2**32-1
max_bin_len=2147483647,
max_array_len=2147483647,
max_map_len=2147483647,
max_ext_len=2147483647,
**kwargs):
assert raw is True
assert encoding is None
assert unicode_errors is None
try:
return mp_unpack(stream, raw=raw, encoding=encoding, unicode_errors=unicode_errors, **kwargs)
return mp_unpack(stream, raw=raw, encoding=encoding, unicode_errors=unicode_errors,
max_str_len=max_str_len,
max_bin_len=max_bin_len,
max_array_len=max_array_len,
max_map_len=max_map_len,
max_ext_len=max_ext_len,
**kwargs)
except Exception as e:
raise UnpackException(e)