Skip to content

Commit

Permalink
Change a memcpy that should be a memmove within json_pointer_get, and…
Browse files Browse the repository at this point in the history
… fix memory leaks in of one the json_pointer tests.
  • Loading branch information
hawicz committed Dec 18, 2016
1 parent 779b77a commit 0a010a5
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
2 changes: 1 addition & 1 deletion json_pointer.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ static void string_replace_all_occurrences_with_char(char *s, const char *occur,
*p = repl_char;
p++;
slen -= skip;
memcpy(p, (p + skip), slen - (p - s) + 1); /* includes null char too */
memmove(p, (p + skip), slen - (p - s) + 1); /* includes null char too */
}
}

Expand Down
14 changes: 10 additions & 4 deletions tests/test_json_pointer.c
Original file line number Diff line number Diff line change
Expand Up @@ -261,15 +261,21 @@ static void test_wrong_inputs_set()
printf("PASSED - SET - failed 'cod' with path 'foo/bar'\n");
json_object_put(jo2);

assert(0 != json_pointer_set(&jo1, "/fud/gaw", (jo2 = json_object_new_string("whatever"))));
jo2 = json_object_new_string("whatever");
assert(0 != json_pointer_set(&jo1, "/fud/gaw", jo2));
assert(0 == json_pointer_set(&jo1, "/fud", json_object_new_object()));
assert(0 == json_pointer_set(&jo1, "/fud/gaw", jo2)); /* re-using jo2 from above */
assert(0 != json_pointer_set(&jo1, "/fud/gaw/0", json_object_new_int(0)));
assert(0 != json_pointer_set(&jo1, "/fud/gaw/", json_object_new_int(0)));
// ownership of jo2 transferred into jo1

jo2 = json_object_new_int(0);
assert(0 != json_pointer_set(&jo1, "/fud/gaw/0", jo2));
json_object_put(jo2);
jo2 = json_object_new_int(0);
assert(0 != json_pointer_set(&jo1, "/fud/gaw/", jo2));
json_object_put(jo2);
printf("PASSED - SET - failed to set index to non-array\n");

json_object_put(jo1);
json_object_put(jo2);
}

int main(int argc, char **argv)
Expand Down

0 comments on commit 0a010a5

Please sign in to comment.