glibc/support/links-dso-program-c.c
DJ Delorie 99135114ba nss_db: fix endent wrt NULL mappings [BZ #24695] [BZ #24696]
nss_db allows for getpwent et al to be called without a set*ent,
but it only works once.  After the last get*ent a set*ent is
required to restart, because the end*ent did not properly reset
the module.  Resetting it to NULL allows for a proper restart.

If the database doesn't exist, however, end*ent erroniously called
munmap which set errno.

The test case runs "makedb" inside the testroot, so needs selinux
DSOs installed.
2019-07-10 14:51:18 -04:00

27 lines
791 B
C

#include <stdio.h>
/* makedb needs selinux dso's. */
#ifdef HAVE_SELINUX
# include <selinux/selinux.h>
#endif
/* The purpose of this file is to indicate to the build system which
shared objects need to be copied into the testroot, such as gcc or
selinux support libraries. This program is never executed, only
scanned for dependencies on shared objects, so the code below may
seem weird - it's written to survive gcc optimization and force
such dependencies.
*/
int
main (int argc, char **argv)
{
/* Complexity to keep gcc from optimizing this away. */
printf ("This is a test %s.\n", argc > 1 ? argv[1] : "null");
#ifdef HAVE_SELINUX
/* This exists to force libselinux.so to be required. */
printf ("selinux %d\n", is_selinux_enabled ());
#endif
return 0;
}