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/fork.c
* Copyright (C) Markus Broeker
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
#include <errno.h>
int fork_proc (char **argv, char **argp)
{
int pid;
char *cmd = argv[0];
pid = fork ();
switch (pid) {
case 0:
printf ("Starting new Process\n");
execve (cmd, argv, argp);
case -1:
perror ("FORK");
return errno;
default:
printf ("Pid started as %d\n", pid);
wait (&pid);
printf ("Exit-Status = %d\n", pid);
return pid;
}
}
int main (int argc, char **argv)
{
char *args[] = {
"/bin/ls",
"-al",
NULL
};
if (fork_proc (args, NULL) == 0) {
printf ("It just works :P\n");
}
return EXIT_SUCCESS;
}