diff options
| author | Jeff King <peff@peff.net> | 2017-01-16 16:34:57 -0500 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2017-01-17 14:24:33 -0800 |
| commit | c2d17b3b6ef42b20b9da294a7a920491b907c503 (patch) | |
| tree | 36aeb7228b92755873ea888c8abf8299e92eb92a /t/t4013/diff.format-patch_--inline_--stdout_initial..master | |
| parent | fsck: do not fallback "git fsck <bogus>" to "git fsck" (diff) | |
| download | git-c2d17b3b6ef42b20b9da294a7a920491b907c503.tar.gz git-c2d17b3b6ef42b20b9da294a7a920491b907c503.zip | |
fsck: check HAS_OBJ more consistently
There are two spots that call lookup_object() and assume
that a non-NULL result means we have the object:
1. When we're checking the objects given to us by the user
on the command line.
2. When we're checking if a reflog entry is valid.
This generally follows fsck's mental model that we will have
looked at and loaded a "struct object" for each object in
the repository. But it misses one case: if another object
_mentioned_ an object, but we didn't actually parse it or
verify that it exists, it will still have a struct.
It's not clear if this is a triggerable bug or not.
Certainly the later parts of the reachability check need to
be careful of this, and do so by checking the HAS_OBJ flag.
But both of these steps happen before we start traversing,
so probably we won't have followed any links yet. Still,
it's easy enough to be defensive here.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t4013/diff.format-patch_--inline_--stdout_initial..master')
0 files changed, 0 insertions, 0 deletions
