fsck: handle NULL return of lookup_blob() and lookup_tree()
authorRené Scharfe <l.s.r@web.de>
Thu, 5 Oct 2017 19:41:26 +0000 (21:41 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 6 Oct 2017 02:04:34 +0000 (11:04 +0900)
commit2720f6db5d35fece41190b93a1eba76d2f64f490
tree6eb26195ed0af37c0b394ab07b48e8cbb42cd14f
parent4010f1d1b782eb7585e0e0abcefa794bd5ff29a0
fsck: handle NULL return of lookup_blob() and lookup_tree()

lookup_blob() and lookup_tree() can return NULL if they find an object
of an unexpected type.  Accessing the object member is undefined in that
case.  Cast the result to a struct object pointer instead; we can do
that because object is the first member of all object types.  This trick
is already used in other places in the code.

An error message is already shown by object_as_type(), which is called
by the lookup functions.  The walk callback functions are expected to
handle NULL object pointers passed to them, but put_object_name() needs
a valid object, so avoid calling it without one.

Suggested-by: SZEDER Gábor <szeder.dev@gmail.com>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
fsck.c
t/t1450-fsck.sh