mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-11-03 20:53:13 +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.
		
			
				
	
	
		
			27 lines
		
	
	
		
			791 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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;
 | 
						|
}
 |