handle null pointers: cJSON_GetArraySize

This commit is contained in:
Max Bruckner 2017-06-27 22:58:51 +02:00
parent 56f2bc6f3e
commit e9d1de24cf
1 changed files with 14 additions and 6 deletions

20
cJSON.c
View File

@ -1653,17 +1653,25 @@ static cJSON_bool print_object(const cJSON * const item, printbuffer * const out
/* Get Array size/item / object item. */
CJSON_PUBLIC(int) cJSON_GetArraySize(const cJSON *array)
{
cJSON *c = array->child;
size_t i = 0;
while(c)
cJSON *child = NULL;
size_t size = 0;
if (array == NULL)
{
i++;
c = c->next;
return 0;
}
child = array->child;
while(child != NULL)
{
size++;
child = child->next;
}
/* FIXME: Can overflow here. Cannot be fixed without breaking the API */
return (int)i;
return (int)size;
}
static cJSON* get_array_item(const cJSON *array, size_t index)