index: release the snapshot instead of freeing the index Previously we would assert in index_free because the reader incrementation would not be balanced. Release the snapshot normally, so the variable gets decremented before the index is freed.
diff --git a/src/index.c b/src/index.c
index 0450d9f..465efaa 100644
--- a/src/index.c
+++ b/src/index.c
@@ -3550,7 +3550,7 @@ int git_index_snapshot_new(git_vector *snap, git_index *index)
error = git_vector_dup(snap, &index->entries, index->entries._cmp);
if (error < 0)
- git_index_free(index);
+ git_index_snapshot_release(snap, index);
return error;
}