Browse Source

json_object_deep_copy: fix deep copy of strings containing '\0'

tags/json-c-0.16-20220414
Ramiro Polla 6 years ago
parent
commit
ab3e40b37c
3 changed files with 3 additions and 1 deletions
  1. +1
    -1
      json_object.c
  2. +1
    -0
      tests/test_deep_copy.c
  3. +1
    -0
      tests/test_deep_copy.expected

+ 1
- 1
json_object.c View File

@@ -1388,7 +1388,7 @@ int json_c_shallow_copy_default(json_object *src, json_object *parent, const cha
break; break;


case json_type_string: case json_type_string:
*dst = json_object_new_string(get_string_component(src));
*dst = json_object_new_string_len(get_string_component(src), src->o.c_string.len);
break; break;


case json_type_object: case json_type_object:


+ 1
- 0
tests/test_deep_copy.c View File

@@ -18,6 +18,7 @@ static const char *json_str1 =
" \"GlossDiv\": {" " \"GlossDiv\": {"
" \"title\": \"S\"," " \"title\": \"S\","
" \"null_obj\": null, " " \"null_obj\": null, "
" \"null_str\": \" \\u0000 \","
" \"GlossList\": {" " \"GlossList\": {"
" \"GlossEntry\": {" " \"GlossEntry\": {"
" \"ID\": \"SGML\"," " \"ID\": \"SGML\","


+ 1
- 0
tests/test_deep_copy.expected View File

@@ -13,6 +13,7 @@ Printing JSON objects for visual inspection
"GlossDiv":{ "GlossDiv":{
"title":"S", "title":"S",
"null_obj":null, "null_obj":null,
"null_str":" \u0000 ",
"GlossList":{ "GlossList":{
"GlossEntry":{ "GlossEntry":{
"ID":"SGML", "ID":"SGML",


Loading…
Cancel
Save