mirror of
https://github.com/git/git
synced 2024-11-04 16:17:49 +00:00
commit-reach: fix memory leak in ahead_behind()
We use a priority queue in `ahead_behind()` to compute the ahead/behind count for commits. We may not iterate through all commits part of that queue though in case all of its entries are stale. Consequently, as we never make the effort to release the remaining commits, we end up leaking bit arrays that we have allocated for each of the contained commits. Plug this leak and mark the corresponding test as leak free. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
96c1655095
commit
ba9d029445
2 changed files with 6 additions and 0 deletions
|
@ -1106,6 +1106,10 @@ void ahead_behind(struct repository *r,
|
|||
|
||||
/* STALE is used here, PARENT2 is used by insert_no_dup(). */
|
||||
repo_clear_commit_marks(r, PARENT2 | STALE);
|
||||
while (prio_queue_peek(&queue)) {
|
||||
struct commit *c = prio_queue_get(&queue);
|
||||
free_bit_array(c);
|
||||
}
|
||||
clear_bit_arrays(&bit_arrays);
|
||||
clear_prio_queue(&queue);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#!/bin/sh
|
||||
|
||||
test_description='git branch display tests'
|
||||
|
||||
TEST_PASSES_SANITIZE_LEAK=true
|
||||
. ./test-lib.sh
|
||||
. "$TEST_DIRECTORY"/lib-terminal.sh
|
||||
|
||||
|
|
Loading…
Reference in a new issue