index-pack: always zero-initialize object_entry list
commit57165db00309e756d6d22b097a2fd6cc14055d14
authorJeff King <peff@peff.net>
Tue, 19 Mar 2013 16:17:22 +0000 (19 12:17 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 20 Mar 2013 19:53:26 +0000 (20 12:53 -0700)
tree71a6762d96c0e4acc0cc2d87e0936e2e5fbf8ac3
parent7e2010537e96d0a1144520222f20ba1dc3d61441
index-pack: always zero-initialize object_entry list

Commit 38a4556 (index-pack: start learning to emulate
"verify-pack -v", 2011-06-03) added a "delta_depth" counter
to each "struct object_entry". Initially, all object entries
have their depth set to 0; in resolve_delta, we then set the
depth of each delta to "base + 1". Base entries never have
their depth touched, and remain at 0.

To ensure that all depths start at 0, that commit changed
calls to xmalloc the object_entry list into calls to
xcalloc.  However, it forgot that we grow the list with
xrealloc later. These extra entries are used when we add an
object from elsewhere to complete a thin pack. If we add a
non-delta object, its depth value will just be uninitialized
heap data.

This patch fixes it by zero-initializing entries we add to
the objects list via the xrealloc.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/index-pack.c