From 766dd9d590bfbda32e6f77bff096c15eebffa3f0 Mon Sep 17 00:00:00 2001 From: hopper-vul <118949689+hopper-vul@users.noreply.github.com> Date: Sat, 1 Jul 2023 16:18:32 +0800 Subject: [PATCH] Fix a null pointer crash in cJSON_ReplaceItemViaPointer (#726) If the parent passed in cJSON_ReplaceItemViaPointer has not a child, which means parent->child is null, a null pointer dereference crash will be happened inside cJSON_ReplaceItemViaPointer. This commit adds the NULL check of `parent->child` beforehand to inform user such incorrect usage. Signed-off-by: hopper-vul --- cJSON.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cJSON.c b/cJSON.c index 524ba46..d7aeecd 100644 --- a/cJSON.c +++ b/cJSON.c @@ -2291,7 +2291,7 @@ CJSON_PUBLIC(cJSON_bool) cJSON_InsertItemInArray(cJSON *array, int which, cJSON CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemViaPointer(cJSON * const parent, cJSON * const item, cJSON * replacement) { - if ((parent == NULL) || (replacement == NULL) || (item == NULL)) + if ((parent == NULL) || (parent->child == NULL) || (replacement == NULL) || (item == NULL)) { return false; }