tag: avoid NULL pointer arithmetic
commit7099153e8d7d0ed228c3a63cb06912c13c1082e5
authorRené Scharfe <l.s.r@web.de>
Sun, 1 Oct 2017 14:45:13 +0000 (1 16:45 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 2 Oct 2017 04:14:33 +0000 (2 13:14 +0900)
tree8a59660c29f472b60f9c3d31ae2b334faffb2a63
parent4010f1d1b782eb7585e0e0abcefa794bd5ff29a0
tag: avoid NULL pointer arithmetic

lookup_blob() etc. can return NULL if the referenced object isn't of the
expected type.  In theory it's wrong to reference the object member in
that case.  In practice it's OK because it's located at offset 0 for all
types, so the pointer arithmetic (NULL + 0) is optimized out by the
compiler.  The issue is reported by Clang's AddressSanitizer, though.

Avoid the ASan error by casting the results of the lookup functions to
struct object pointers.  That works fine with NULL pointers as well.  We
already rely on the object member being first in all object types in
other places in the code.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
tag.c