getpwnam_error.c:
* The memory hole can be fixed with two different approaches
1) Change /etc/nsswitch.conf: passwd: compat to passwd: files
2) LD_PRELOAD=/lib/libnss_compat.so.2 valgrind ./getpwnam_error
GLIBC loads libnss_compat on the fly and unloads it.
Thanks to telexicon for reporting this...
committer: Markus Bröker <mbroeker@largo.homelinux.org>
/**
* test/demos/asm/main.c
* Copyright (C) 2008 Markus Broeker
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#ifndef TIMEOUT
#define TIMEOUT 500
#endif
int get_sp ();
void sigendian ()
{
unsigned short word = 0x1234;
unsigned char *p = (unsigned char *)&word;
signal (SIGUSR1, sigendian);
printf ("%s Endian System\n", (p[0] == 0x34) ? "Little" : "Big");
}
void sigproc ()
{
signal (SIGINT, sigproc);
printf ("Stack-Pointer is at %08x\n", get_sp ());
}
void sigquit ()
{
printf ("Hmm... You got it, man!\n");
exit (0);
}
int main (int argc, char **argv)
{
signal (SIGINT, sigproc);
signal (SIGUSR1, sigendian);
signal (SIGQUIT, sigquit);
for (;;)
usleep (TIMEOUT);
return EXIT_FAILURE;
}