The destructors used by talloc take a "void *" first parameter.
However talloc.h had a #define hack that treated the destructor as a
function taking first parameter of type "typeof(ptr)" where ptr is the
pointer the destructor is set for. I suppose this was done to add some
kind of "type safety" against adding a destructor expecting another
type of pointer; however this hack is questionable and violates the
real C level typing. Remove the hack from the header and adjust
talloc.c to avoid a warning about a C type violation that became
visible after removing the hack.
Use the current macro definitions for likely/unlikely from Samba. The
old version lacked parentheses around the non-GCC alternative, but
there are no uses where this would actually make a difference.
Replace (hopefully) all cases where normally successful allocations
could return NULL with abort(). This should allow skipping most checks
on allocation return values.
Original talloc build system used autoconf to check for features, most
of which were standard C headers. Assume those always exist. Always
use a workaround for the one non-standard feature (strnlen).