Change a memcpy that should be a memmove within json_pointer_get, and fix memory leaks in of one the json_pointer tests.

This commit is contained in:
Eric Haszlakiewicz
2016-12-18 14:33:41 -05:00
parent 779b77a164
commit 0a010a59eb
2 changed files with 11 additions and 5 deletions

View File

@@ -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 */
}
}

View File

@@ -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)