mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-08 17:42:12 +03:00
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.
This commit is contained in:
@@ -1,9 +1,26 @@
|
||||
#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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user