|  | @@ -1049,27 +1049,34 @@ static cJSON_bool print_value(const cJSON * const item, const size_t depth, cons
 | 
											
												
													
														|  |      {
 |  |      {
 | 
											
												
													
														|  |          case cJSON_NULL:
 |  |          case cJSON_NULL:
 | 
											
												
													
														|  |              output = ensure(output_buffer, 5, hooks);
 |  |              output = ensure(output_buffer, 5, hooks);
 | 
											
												
													
														|  | -            if (output != NULL)
 |  | 
 | 
											
												
													
														|  | 
 |  | +            if (output == NULL)
 | 
											
												
													
														|  |              {
 |  |              {
 | 
											
												
													
														|  | -                strcpy((char*)output, "null");
 |  | 
 | 
											
												
													
														|  | 
 |  | +                return false;
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  | -            break;
 |  | 
 | 
											
												
													
														|  | 
 |  | +            strcpy((char*)output, "null");
 | 
											
												
													
														|  | 
 |  | +            return true;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          case cJSON_False:
 |  |          case cJSON_False:
 | 
											
												
													
														|  |              output = ensure(output_buffer, 6, hooks);
 |  |              output = ensure(output_buffer, 6, hooks);
 | 
											
												
													
														|  | -            if (output != NULL)
 |  | 
 | 
											
												
													
														|  | 
 |  | +            if (output == NULL)
 | 
											
												
													
														|  |              {
 |  |              {
 | 
											
												
													
														|  | -                strcpy((char*)output, "false");
 |  | 
 | 
											
												
													
														|  | 
 |  | +                return false;
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  | -            break;
 |  | 
 | 
											
												
													
														|  | 
 |  | +            strcpy((char*)output, "false");
 | 
											
												
													
														|  | 
 |  | +            return true;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          case cJSON_True:
 |  |          case cJSON_True:
 | 
											
												
													
														|  |              output = ensure(output_buffer, 5, hooks);
 |  |              output = ensure(output_buffer, 5, hooks);
 | 
											
												
													
														|  | -            if (output != NULL)
 |  | 
 | 
											
												
													
														|  | 
 |  | +            if (output == NULL)
 | 
											
												
													
														|  |              {
 |  |              {
 | 
											
												
													
														|  | -                strcpy((char*)output, "true");
 |  | 
 | 
											
												
													
														|  | 
 |  | +                return false;
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  | -            break;
 |  | 
 | 
											
												
													
														|  | 
 |  | +            strcpy((char*)output, "true");
 | 
											
												
													
														|  | 
 |  | +            return true;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          case cJSON_Number:
 |  |          case cJSON_Number:
 | 
											
												
													
														|  |              return print_number(item, output_buffer, hooks);
 |  |              return print_number(item, output_buffer, hooks);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          case cJSON_Raw:
 |  |          case cJSON_Raw:
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
												
													
														|  |              size_t raw_length = 0;
 |  |              size_t raw_length = 0;
 | 
											
										
											
												
													
														|  | @@ -1079,31 +1086,31 @@ static cJSON_bool print_value(const cJSON * const item, const size_t depth, cons
 | 
											
												
													
														|  |                  {
 |  |                  {
 | 
											
												
													
														|  |                      hooks->deallocate(output_buffer->buffer);
 |  |                      hooks->deallocate(output_buffer->buffer);
 | 
											
												
													
														|  |                  }
 |  |                  }
 | 
											
												
													
														|  | -                output = NULL;
 |  | 
 | 
											
												
													
														|  | -                break;
 |  | 
 | 
											
												
													
														|  | 
 |  | +                return false;
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |              raw_length = strlen(item->valuestring) + sizeof('\0');
 |  |              raw_length = strlen(item->valuestring) + sizeof('\0');
 | 
											
												
													
														|  |              output = ensure(output_buffer, raw_length, hooks);
 |  |              output = ensure(output_buffer, raw_length, hooks);
 | 
											
												
													
														|  | -            if (output != NULL)
 |  | 
 | 
											
												
													
														|  | 
 |  | +            if (output == NULL)
 | 
											
												
													
														|  |              {
 |  |              {
 | 
											
												
													
														|  | -                memcpy(output, item->valuestring, raw_length);
 |  | 
 | 
											
												
													
														|  | 
 |  | +                return false;
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  | -            break;
 |  | 
 | 
											
												
													
														|  | 
 |  | +            memcpy(output, item->valuestring, raw_length);
 | 
											
												
													
														|  | 
 |  | +            return true;
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          case cJSON_String:
 |  |          case cJSON_String:
 | 
											
												
													
														|  |              return print_string(item, output_buffer, hooks);
 |  |              return print_string(item, output_buffer, hooks);
 | 
											
												
													
														|  | -            break;
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          case cJSON_Array:
 |  |          case cJSON_Array:
 | 
											
												
													
														|  |              return print_array(item, depth, format, output_buffer, hooks);
 |  |              return print_array(item, depth, format, output_buffer, hooks);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          case cJSON_Object:
 |  |          case cJSON_Object:
 | 
											
												
													
														|  |              return print_object(item, depth, format, output_buffer, hooks);
 |  |              return print_object(item, depth, format, output_buffer, hooks);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          default:
 |  |          default:
 | 
											
												
													
														|  | -            output = NULL;
 |  | 
 | 
											
												
													
														|  | -            break;
 |  | 
 | 
											
												
													
														|  | 
 |  | +            return false;
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -    return output != NULL;
 |  | 
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  /* Build an array from input text. */
 |  |  /* Build an array from input text. */
 |