|  | @@ -262,6 +262,7 @@ int main (int argc, char **argv)
 | 
		
	
		
			
			| 262 | 262 |    size_t socket_count = 0, sc;
 | 
		
	
		
			
			| 263 | 263 |    int sockets[4] = { -1, -1, -1, -1 };
 | 
		
	
		
			
			| 264 | 264 |    handle_t handler[4] = { 0, 0, 0, 0 };
 | 
		
	
		
			
			|  | 265 | +  int fd, maxfd;
 | 
		
	
		
			
			| 265 | 266 |  
 | 
		
	
		
			
			| 266 | 267 |    excludes = (const char**)calloc(1, sizeof(char*));
 | 
		
	
		
			
			| 267 | 268 |    tmp = strrchr(argv[0], '/');
 | 
		
	
	
		
			
			|  | @@ -398,6 +399,11 @@ int main (int argc, char **argv)
 | 
		
	
		
			
			| 398 | 399 |    if (forward_service == NULL) forward_service = strdup("10001");
 | 
		
	
		
			
			| 399 | 400 |    if (reverse_service == NULL) reverse_service = strdup("10002");
 | 
		
	
		
			
			| 400 | 401 |  
 | 
		
	
		
			
			|  | 402 | +  /* Close all file descriptors (std ones will be closed later). */
 | 
		
	
		
			
			|  | 403 | +  maxfd = sysconf(_SC_OPEN_MAX);
 | 
		
	
		
			
			|  | 404 | +  for(fd = 3; fd < maxfd; fd++)
 | 
		
	
		
			
			|  | 405 | +    close(fd);
 | 
		
	
		
			
			|  | 406 | +
 | 
		
	
		
			
			| 401 | 407 |    /* The stuff we do first may not be possible from within chroot or without privileges */
 | 
		
	
		
			
			| 402 | 408 |  
 | 
		
	
		
			
			| 403 | 409 |    /* Open pid file for writing (the actual process ID is filled in later) */
 |