|  | @@ -82,7 +82,7 @@ CJSON_PUBLIC(char *) cJSON_GetStringValue(cJSON *item) {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* This is a safeguard to prevent copy-pasters from using incompatible C and header files */
 | 
	
		
			
				|  |  | -#if (CJSON_VERSION_MAJOR != 1) || (CJSON_VERSION_MINOR != 7) || (CJSON_VERSION_PATCH != 0)
 | 
	
		
			
				|  |  | +#if (CJSON_VERSION_MAJOR != 1) || (CJSON_VERSION_MINOR != 7) || (CJSON_VERSION_PATCH != 1)
 | 
	
		
			
				|  |  |      #error cJSON.h and cJSON.c have different versions. Make sure that both have the same.
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -512,7 +512,7 @@ static cJSON_bool print_number(const cJSON * const item, printbuffer * const out
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /* reserve appropriate space in the output */
 | 
	
		
			
				|  |  | -    output_pointer = ensure(output_buffer, (size_t)length);
 | 
	
		
			
				|  |  | +    output_pointer = ensure(output_buffer, (size_t)length + sizeof(""));
 | 
	
		
			
				|  |  |      if (output_pointer == NULL)
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |          return false;
 | 
	
	
		
			
				|  | @@ -1087,13 +1087,15 @@ CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static unsigned char *print(const cJSON * const item, cJSON_bool format, const internal_hooks * const hooks)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | +    static const size_t default_buffer_size = 256;
 | 
	
		
			
				|  |  |      printbuffer buffer[1];
 | 
	
		
			
				|  |  |      unsigned char *printed = NULL;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      memset(buffer, 0, sizeof(buffer));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /* create buffer */
 | 
	
		
			
				|  |  | -    buffer->buffer = (unsigned char*) hooks->allocate(256);
 | 
	
		
			
				|  |  | +    buffer->buffer = (unsigned char*) hooks->allocate(default_buffer_size);
 | 
	
		
			
				|  |  | +    buffer->length = default_buffer_size;
 | 
	
		
			
				|  |  |      buffer->format = format;
 | 
	
		
			
				|  |  |      buffer->hooks = *hooks;
 | 
	
		
			
				|  |  |      if (buffer->buffer == NULL)
 | 
	
	
		
			
				|  | @@ -1111,7 +1113,7 @@ static unsigned char *print(const cJSON * const item, cJSON_bool format, const i
 | 
	
		
			
				|  |  |      /* check if reallocate is available */
 | 
	
		
			
				|  |  |      if (hooks->reallocate != NULL)
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | -        printed = (unsigned char*) hooks->reallocate(buffer->buffer, buffer->length);
 | 
	
		
			
				|  |  | +        printed = (unsigned char*) hooks->reallocate(buffer->buffer, buffer->offset + 1);
 | 
	
		
			
				|  |  |          buffer->buffer = NULL;
 | 
	
		
			
				|  |  |          if (printed == NULL) {
 | 
	
		
			
				|  |  |              goto fail;
 |