pack-bitmap: clean up include_check after use
authorJeff King <peff@peff.net>
Wed, 28 Apr 2021 15:42:30 +0000 (11:42 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 29 Apr 2021 01:03:46 +0000 (10:03 +0900)
commit1e951c647365be2e93bceddf7bd13173ed2cb1ce
tree51b69bcd12342bd618e41bc73afab7b06c1cf4d5
parent48bf2fa8bad054d66bd79c6ba903c89c704201f7
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>
pack-bitmap.c