The callback is valid until first called.
NULL is ok, both for passing and for returning.
Free data after the code is done.