Rebuilding unscd from source and running an unstripped binary, we see it crashing in libc's nsswitch.c:875.
#if __OPTION_EGLIBC_INET /* Called by nscd and nscd alone. */ void __nss_disable_nscd (void (*cb) (size_t, struct traced_file *)) { # ifdef PTR_MANGLE PTR_MANGLE (cb); <---- NULL ptr deref # endif nscd_init_cb = cb; is_nscd = true;
The 'cb' init callback function pointer is apparently optional; the definition of PTR_DEMANGLE in sysdep.h doesn't say so.
Rebuilding unscd from source and running an unstripped binary, we see it crashing in libc's nsswitch.c:875.
#if __OPTION_ EGLIBC_ INET
/* Called by nscd and nscd alone. */
void
__nss_disable_nscd (void (*cb) (size_t, struct traced_file *))
{
# ifdef PTR_MANGLE
PTR_MANGLE (cb); <---- NULL ptr deref
# endif
nscd_init_cb = cb;
is_nscd = true;
The 'cb' init callback function pointer is apparently optional; the definition of PTR_DEMANGLE in sysdep.h doesn't say so.