On Sun, Oct 01, 2017 at 04:45:13PM +0200, René Scharfe wrote:

> 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.

Out of curiosity, did you have to do anything to coax this out of ASan
(e.g., a specific version)?  I've been running it pretty regularly and
didn't see this one (I did switch from clang to gcc a month or two ago,
but this code is pretty old, I think).

-Peff

Reply via email to