mirror of
				https://github.com/msgpack/msgpack-python.git
				synced 2025-11-03 19:10:55 +00:00 
			
		
		
		
	python: Add memory error check.
This commit is contained in:
		
							parent
							
								
									47b0c273bb
								
							
						
					
					
						commit
						b453385d92
					
				
					 1 changed files with 5 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -46,6 +46,8 @@ cdef class Packer(object):
 | 
			
		|||
    def __cinit__(self):
 | 
			
		||||
        cdef int buf_size = 1024*1024
 | 
			
		||||
        self.pk.buf = <char*> malloc(buf_size);
 | 
			
		||||
        if self.pk.buf == NULL:
 | 
			
		||||
            raise MemoryError("Unable to allocate internal buffer.")
 | 
			
		||||
        self.pk.buf_size = buf_size
 | 
			
		||||
        self.pk.length = 0
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -300,7 +302,9 @@ cdef class Unpacker(object):
 | 
			
		|||
                    new_size = buf_size*2
 | 
			
		||||
                buf = <char*>realloc(buf, new_size) 
 | 
			
		||||
                if buf == NULL:
 | 
			
		||||
                    raise MemoryError("Unable to enlarge internal buffer.")   # self.buf still holds old buffer and will be freed during obj destruction
 | 
			
		||||
                    # self.buf still holds old buffer and will be freed during
 | 
			
		||||
                    # obj destruction
 | 
			
		||||
                    raise MemoryError("Unable to enlarge internal buffer.")
 | 
			
		||||
                buf_size = new_size
 | 
			
		||||
 | 
			
		||||
        memcpy(buf + tail, <char*>(_buf), _buf_len)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue