handle null pointers: create_reference

Also fixes a potential memory leak
This commit is contained in:
Max Bruckner 2017-06-27 23:00:19 +02:00
parent e9d1de24cf
commit 90ff72c8bb
1 changed files with 14 additions and 7 deletions

21
cJSON.c
View File

@ -1756,16 +1756,23 @@ static void suffix_object(cJSON *prev, cJSON *item)
/* Utility for handling references. */
static cJSON *create_reference(const cJSON *item, const internal_hooks * const hooks)
{
cJSON *ref = cJSON_New_Item(hooks);
if (!ref)
cJSON *reference = NULL;
if (item == NULL)
{
return NULL;
}
memcpy(ref, item, sizeof(cJSON));
ref->string = NULL;
ref->type |= cJSON_IsReference;
ref->next = ref->prev = NULL;
return ref;
reference = cJSON_New_Item(hooks);
if (reference == NULL)
{
return NULL;
}
memcpy(reference, item, sizeof(cJSON));
reference->string = NULL;
reference->type |= cJSON_IsReference;
reference->next = reference->prev = NULL;
return reference;
}
/* Add item to array/object. */