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/crypt.c
* Copyright (C) 2008 Markus Broeker
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <crypt.h>
#define GETRANDOM(max) ('a'+(int)((float)max*rand()/RAND_MAX+1.0))
int main (int argc, char **argv)
{
char salt[12] = { 0 };
if (argc != 2) {
printf ("Usage: %s <plaintext>\n", argv[0]);
return EXIT_FAILURE;
}
srand (time (NULL));
sprintf (salt, "$1$%c%c%c%c%c%c%c%c",
GETRANDOM (26), GETRANDOM (26),
GETRANDOM (26), GETRANDOM (26), GETRANDOM (26), GETRANDOM (26), GETRANDOM (26), GETRANDOM (26));
printf ("%s\n", crypt (argv[1], salt));
return EXIT_SUCCESS;
}