diff options
author | Etienne Samson <samson.etienne@gmail.com> | 2018-09-26 19:15:35 +0000 |
---|---|---|
committer | Etienne Samson <samson.etienne@gmail.com> | 2018-09-26 21:17:17 +0200 |
commit | fa48d2ea7d2d5dc9620e5c9f05ba8d788775582b (patch) | |
tree | a59eab4a87b36b7fe575f8793fd6fb516dc1d1fe /tests | |
parent | c70713d6e4af563696563e410864eb4a6507757d (diff) | |
download | libgit2-fa48d2ea7d2d5dc9620e5c9f05ba8d788775582b.tar.gz |
vector: do not malloc 0-length vectors on dup
Diffstat (limited to 'tests')
-rw-r--r-- | tests/core/vector.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/core/vector.c b/tests/core/vector.c index 4e6f6fc7f..6b8ea574d 100644 --- a/tests/core/vector.c +++ b/tests/core/vector.c @@ -407,3 +407,22 @@ void test_core_vector__reverse(void) git_vector_free(&v); } + +void test_core_vector__dup_empty_vector(void) +{ + git_vector v = GIT_VECTOR_INIT; + git_vector dup = GIT_VECTOR_INIT; + void *dummy = 0xDEAFBEEB; + + cl_assert_equal_i(0, v.length); + + cl_git_pass(git_vector_dup(&dup, &v, v._cmp)); + cl_assert_equal_i(0, dup._alloc_size); + cl_assert_equal_i(0, dup.length); + + cl_git_pass(git_vector_insert(&dup, dummy)); + cl_assert_equal_i(8, dup._alloc_size); + cl_assert_equal_i(1, dup.length); + + git_vector_free(&dup); +} |