summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorINADA Naoki <inada-n@klab.com>2014-03-26 11:05:53 +0900
committerINADA Naoki <inada-n@klab.com>2014-03-26 11:05:53 +0900
commitef5d93d4eaaaf107094776c215f07efd0faae3e9 (patch)
treec9546553ebdef002c73479bd9f9201f50743be03
parente99331d1ab793105da2e0a4139059169e5c835b3 (diff)
downloadmsgpack-python-ef5d93d4eaaaf107094776c215f07efd0faae3e9.tar.gz
Fix size limit on pack_array_header and pack_map_header.
-rw-r--r--msgpack/_packer.pyx4
-rw-r--r--msgpack/fallback.py4
2 files changed, 6 insertions, 2 deletions
diff --git a/msgpack/_packer.pyx b/msgpack/_packer.pyx
index 204beaa..82e4a63 100644
--- a/msgpack/_packer.pyx
+++ b/msgpack/_packer.pyx
@@ -238,7 +238,7 @@ cdef class Packer(object):
msgpack_pack_raw_body(&self.pk, data, len(data))
def pack_array_header(self, size_t size):
- if size >= (2**32-1):
+ if size > (2**32-1):
raise ValueError
cdef int ret = msgpack_pack_array(&self.pk, size)
if ret == -1:
@@ -251,7 +251,7 @@ cdef class Packer(object):
return buf
def pack_map_header(self, size_t size):
- if size >= (2**32-1):
+ if size > (2**32-1):
raise ValueError
cdef int ret = msgpack_pack_map(&self.pk, size)
if ret == -1:
diff --git a/msgpack/fallback.py b/msgpack/fallback.py
index 55de72c..49323e6 100644
--- a/msgpack/fallback.py
+++ b/msgpack/fallback.py
@@ -633,6 +633,8 @@ class Packer(object):
return ret
def pack_array_header(self, n):
+ if n >= 2**32:
+ raise ValueError
self._fb_pack_array_header(n)
ret = self._buffer.getvalue()
if self._autoreset:
@@ -642,6 +644,8 @@ class Packer(object):
return ret
def pack_map_header(self, n):
+ if n >= 2**32:
+ raise ValueError
self._fb_pack_map_header(n)
ret = self._buffer.getvalue()
if self._autoreset: