Merge pull request #2250 from jacquesg/vector-leak Don't lose our elements when calling git_vector_set()
diff --git a/src/vector.c b/src/vector.c
index c2c67e6..37ea07f 100644
--- a/src/vector.c
+++ b/src/vector.c
@@ -327,8 +327,10 @@ int git_vector_resize_to(git_vector *v, size_t new_length)
int git_vector_set(void **old, git_vector *v, size_t position, void *value)
{
- if (git_vector_resize_to(v, position + 1) < 0)
- return -1;
+ if (position + 1 > v->length) {
+ if (git_vector_resize_to(v, position + 1) < 0)
+ return -1;
+ }
if (old != NULL)
*old = v->contents[position];