mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 03:33:33 +08:00
99135114ba
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.
29 lines
788 B
C++
29 lines
788 B
C++
#include <iostream>
|
|
|
|
/* makedb needs selinux dso's. */
|
|
#ifdef HAVE_SELINUX
|
|
# include <selinux/selinux.h>
|
|
#endif
|
|
|
|
using namespace std;
|
|
|
|
/* 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. */
|
|
cout << (argc > 1 ? argv[1] : "null");
|
|
#ifdef HAVE_SELINUX
|
|
/* This exists to force libselinux.so to be required. */
|
|
cout << "selinux " << is_selinux_enabled ();
|
|
#endif
|
|
return 0;
|
|
}
|