-
Notifications
You must be signed in to change notification settings - Fork 3.4k
fix several null pointer problems on allocation failure #526
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
| } | ||
|
|
||
| a = cJSON_CreateArray(); | ||
| for(i = 0; a && (i < (size_t)count); i++) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
when allocation failure, cJSON_CreateArray() will return NULL, then it won't enter the for loop.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, it won't enter the for loop, but 'a->child' will crush.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the line after for loop, a->child->prev = n;
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks, I didn't notice that.
Alanscut
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for(i = 0; a && (i < (size_t)count); i++)
is equal to
if (!a)
{
return NULL;
}
for(i = 0; a && (i < (size_t)count); i++)
there is no need to optimize it.
Fixes: Fix potential core dumped for strrchr, see DaveGamble/cJSON#546 Fix null pointer crash in cJSON_CreateXxArray, see DaveGamble/cJSON#538 Fix several null pointer problems on allocation failure, see DaveGamble/cJSON#526 Fix a possible dereference of null pointer, see DaveGamble/cJSON#519 Fix windows build failure about defining nan, see DaveGamble/cJSON#518 Signed-off-by: Wang Mingyu <[email protected]> Signed-off-by: Khem Raj <[email protected]>
Fixes: Fix potential core dumped for strrchr, see DaveGamble/cJSON#546 Fix null pointer crash in cJSON_CreateXxArray, see DaveGamble/cJSON#538 Fix several null pointer problems on allocation failure, see DaveGamble/cJSON#526 Fix a possible dereference of null pointer, see DaveGamble/cJSON#519 Fix windows build failure about defining nan, see DaveGamble/cJSON#518 Signed-off-by: Wang Mingyu <[email protected]> Signed-off-by: Khem Raj <[email protected]> (cherry picked from commit fa00ac0) Signed-off-by: Armin Kuster <[email protected]>
1.7.18 (May 13, 2024) ====== * Add NULL check to cJSON_SetValuestring()(CVE-2024-31755), see #839 and #840 * Remove non-functional list handling of compiler flags, see #851 * Fix heap buffer overflow, see #852 * Remove misused optimization flag -01, see #854 * Set free'd pointers to NULL whenever they are not reassigned immediately after, see #855 and #833 1.7.17 (Dec 26, 2023) ====== * Fix null reference in cJSON_SetValuestring(CVE-2023-50472), see #809 * Fix null reference in cJSON_InsertItemInArray(CVE-2023-50471), see #809 and #810 1.7.16 (Jul 5, 2023) ====== * Add an option for ENABLE_CJSON_VERSION_SO in CMakeLists.txt, see #534 * Add cmake_policy to CMakeLists.txt, see #163 * Add cJSON_SetBoolValue, see #639 * Add meson documentation, see #761 * Fix memory leak in merge_patch, see #611 * Fix conflicting target names 'uninstall', see #617 * Bump cmake version to 3.0 and use new version syntax, see #587 * Print int without decimal places, see #630 * Fix 'cjson_utils-static' target not exist, see #625 * Add allocate check for replace_item_in_object, see #675 * Fix a null pointer crash in cJSON_ReplaceItemViaPointer, see #726 1.7.15 (Aug 25, 2021) ====== * Fix potential core dumped for strrchr, see [#546](DaveGamble/cJSON#546) * Fix null pointer crash in cJSON_CreateXxArray, see [#538](DaveGamble/cJSON#538) * Fix several null pointer problems on allocation failure, see [#526](DaveGamble/cJSON#526) * Fix a possible dereference of null pointer, see [#519](DaveGamble/cJSON#519) * Fix windows build failure about defining nan, see [#518](DaveGamble/cJSON#518) 1.7.14 (Sep 3, 2020) ====== * Optimize the way to find tail node, see [#503](DaveGamble/cJSON#503) * Fix WError error on macosx because NAN is a float. Thanks @sappo, see [#484](DaveGamble/cJSON#484) * Fix some bugs in detach and replace. Thanks @miaoerduo, see [#456](DaveGamble/cJSON#456) Signed-off-by: Andre McCurdy <[email protected]>
1.7.18 (May 13, 2024) ====== * Add NULL check to cJSON_SetValuestring()(CVE-2024-31755), see #839 and #840 * Remove non-functional list handling of compiler flags, see #851 * Fix heap buffer overflow, see #852 * Remove misused optimization flag -01, see #854 * Set free'd pointers to NULL whenever they are not reassigned immediately after, see #855 and #833 1.7.17 (Dec 26, 2023) ====== * Fix null reference in cJSON_SetValuestring(CVE-2023-50472), see #809 * Fix null reference in cJSON_InsertItemInArray(CVE-2023-50471), see #809 and #810 1.7.16 (Jul 5, 2023) ====== * Add an option for ENABLE_CJSON_VERSION_SO in CMakeLists.txt, see #534 * Add cmake_policy to CMakeLists.txt, see #163 * Add cJSON_SetBoolValue, see #639 * Add meson documentation, see #761 * Fix memory leak in merge_patch, see #611 * Fix conflicting target names 'uninstall', see #617 * Bump cmake version to 3.0 and use new version syntax, see #587 * Print int without decimal places, see #630 * Fix 'cjson_utils-static' target not exist, see #625 * Add allocate check for replace_item_in_object, see #675 * Fix a null pointer crash in cJSON_ReplaceItemViaPointer, see #726 1.7.15 (Aug 25, 2021) ====== * Fix potential core dumped for strrchr, see [#546](DaveGamble/cJSON#546) * Fix null pointer crash in cJSON_CreateXxArray, see [#538](DaveGamble/cJSON#538) * Fix several null pointer problems on allocation failure, see [#526](DaveGamble/cJSON#526) * Fix a possible dereference of null pointer, see [#519](DaveGamble/cJSON#519) * Fix windows build failure about defining nan, see [#518](DaveGamble/cJSON#518) 1.7.14 (Sep 3, 2020) ====== * Optimize the way to find tail node, see [#503](DaveGamble/cJSON#503) * Fix WError error on macosx because NAN is a float. Thanks @sappo, see [#484](DaveGamble/cJSON#484) * Fix some bugs in detach and replace. Thanks @miaoerduo, see [#456](DaveGamble/cJSON#456) Signed-off-by: Andre McCurdy <[email protected]>
No description provided.