mirror of
https://github.com/DaveGamble/cJSON.git
synced 2025-01-13 18:57:57 +08:00
CJSON_SetValuestring: better test for overlapping string
This commit is contained in:
parent
b47edc4750
commit
4f4d7f70c2
@ -473,15 +473,19 @@ static void cjson_functions_should_not_crash_with_null_pointers(void)
|
|||||||
|
|
||||||
static void cjson_set_valuestring_should_return_null_if_strings_overlap(void)
|
static void cjson_set_valuestring_should_return_null_if_strings_overlap(void)
|
||||||
{
|
{
|
||||||
cJSON *obj, *obj_dup;
|
cJSON *obj;
|
||||||
char* str;
|
char* str;
|
||||||
|
char* str2;
|
||||||
|
|
||||||
obj = cJSON_Parse("\"fooz\"");
|
obj = cJSON_Parse("\"foo0z\"");
|
||||||
obj_dup = cJSON_Duplicate(obj, 1);
|
|
||||||
|
|
||||||
str = cJSON_SetValuestring(obj_dup, "beeez");
|
str = cJSON_SetValuestring(obj, "abcde");
|
||||||
cJSON_SetValuestring(obj_dup, str);
|
str += 1;
|
||||||
cJSON_SetValuestring(obj_dup, ++str);
|
/* The string passed to strcpy overlap which is not allowed.*/
|
||||||
|
str2 = cJSON_SetValuestring(obj, str);
|
||||||
|
/* If it overlaps, the string will be messed up.*/
|
||||||
|
TEST_ASSERT_TRUE(strcmp(str, "bcde") == 0);
|
||||||
|
TEST_ASSERT_NULL(str2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *CJSON_CDECL failing_realloc(void *pointer, size_t size)
|
static void *CJSON_CDECL failing_realloc(void *pointer, size_t size)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user