Fix size limit on pack_array_header and pack_map_header.

This commit is contained in:
INADA Naoki 2014-03-26 11:05:53 +09:00
parent e99331d1ab
commit ef5d93d4ea
2 changed files with 6 additions and 2 deletions

View file

@ -238,7 +238,7 @@ cdef class Packer(object):
msgpack_pack_raw_body(&self.pk, data, len(data)) msgpack_pack_raw_body(&self.pk, data, len(data))
def pack_array_header(self, size_t size): def pack_array_header(self, size_t size):
if size >= (2**32-1): if size > (2**32-1):
raise ValueError raise ValueError
cdef int ret = msgpack_pack_array(&self.pk, size) cdef int ret = msgpack_pack_array(&self.pk, size)
if ret == -1: if ret == -1:
@ -251,7 +251,7 @@ cdef class Packer(object):
return buf return buf
def pack_map_header(self, size_t size): def pack_map_header(self, size_t size):
if size >= (2**32-1): if size > (2**32-1):
raise ValueError raise ValueError
cdef int ret = msgpack_pack_map(&self.pk, size) cdef int ret = msgpack_pack_map(&self.pk, size)
if ret == -1: if ret == -1:

View file

@ -633,6 +633,8 @@ class Packer(object):
return ret return ret
def pack_array_header(self, n): def pack_array_header(self, n):
if n >= 2**32:
raise ValueError
self._fb_pack_array_header(n) self._fb_pack_array_header(n)
ret = self._buffer.getvalue() ret = self._buffer.getvalue()
if self._autoreset: if self._autoreset:
@ -642,6 +644,8 @@ class Packer(object):
return ret return ret
def pack_map_header(self, n): def pack_map_header(self, n):
if n >= 2**32:
raise ValueError
self._fb_pack_map_header(n) self._fb_pack_map_header(n)
ret = self._buffer.getvalue() ret = self._buffer.getvalue()
if self._autoreset: if self._autoreset: