Fix leak when using push and pop with ignores The iterator pushes and pops ignores incrementally onto a list as it traverses the directory structure so that it doesn't have to constantly recheck which ignore files apply. With the new ref counting, it wasn't decrementing the refcount on the ignores that it removed from the vector.
diff --git a/src/ignore.c b/src/ignore.c
index 9b3c6a8..0fb042a 100644
--- a/src/ignore.c
+++ b/src/ignore.c
@@ -191,7 +191,10 @@ int git_ignore__pop_dir(git_ignores *ign)
if (ign->dir.size >= keylen &&
!memcmp(ign->dir.ptr + ign->dir.size - keylen, start, keylen))
+ {
+ git_attr_file__free(git_vector_last(&ign->ign_path));
git_vector_pop(&ign->ign_path);
+ }
}
if (--ign->depth > 0) {