On 07/06/2018 07:28 AM, Mark Rutland wrote:
In tnode_free() we iterate over a callback_head list with a while loop.
At the start of the loop body we generate the next head pointer, and at
the end of the loop body we generate the tn pointer for the next
iteration of the loop by using container_of() on the head pointer to
find the tnode, and deriving the kv pointer from this.
In the final iteration of the loop, this means that we derive a pointer
from NULL, which is undefined behaviour, which UBSAN detects:
There is no dereference, your patch title is misleading.
UBSAN might be fooled, not the C compiler.