summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEtienne Samson <samson.etienne@gmail.com>2018-09-26 19:15:35 +0000
committerEtienne Samson <samson.etienne@gmail.com>2018-09-26 21:17:17 +0200
commitfa48d2ea7d2d5dc9620e5c9f05ba8d788775582b (patch)
treea59eab4a87b36b7fe575f8793fd6fb516dc1d1fe /tests
parentc70713d6e4af563696563e410864eb4a6507757d (diff)
downloadlibgit2-fa48d2ea7d2d5dc9620e5c9f05ba8d788775582b.tar.gz
vector: do not malloc 0-length vectors on dup
Diffstat (limited to 'tests')
-rw-r--r--tests/core/vector.c19
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);
+}