mirror of
https://github.com/git/git
synced 2024-08-24 18:26:02 +00:00
pack-bitmap: clean up include_check after use
When a bitmap walk has to traverse (to fill in non-bitmapped objects), we use rev_info's include_check mechanism to let us stop the traversal early. But after setting the function and its data parameter, we never clean it up. This means that if the rev_info is used for a subsequent traversal without bitmaps, it will unexpectedly call into our include_check function (worse, it will do so pointing to a now-defunct stack variable in include_check_data, likely resulting in a segfault). There's no code which does this now, but it's an accident waiting to happen. Let's clean up after ourselves in the bitmap code. Reported-by: David Emett <dave@sp4m.net> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
48bf2fa8ba
commit
1e951c6473
|
@ -630,6 +630,9 @@ static struct bitmap *find_objects(struct bitmap_index *bitmap_git,
|
|||
traverse_commit_list_filtered(filter, revs,
|
||||
show_commit, show_object,
|
||||
&show_data, NULL);
|
||||
|
||||
revs->include_check = NULL;
|
||||
revs->include_check_data = NULL;
|
||||
}
|
||||
|
||||
return base;
|
||||
|
|
Loading…
Reference in a new issue