mirror of
				https://github.com/msgpack/msgpack-python.git
				synced 2025-11-04 03:20:56 +00:00 
			
		
		
		
	Fix size limit on pack_array_header and pack_map_header.
This commit is contained in:
		
							parent
							
								
									e99331d1ab
								
							
						
					
					
						commit
						ef5d93d4ea
					
				
					 2 changed files with 6 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -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:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue