patches for easier mirroring, to eliminate a special copy, to make www.freebsd.org/security a full copy of security.freebsd.org and be eventually be the same. For now files are just sitting there. The symlinks are missing. Discussed on: www (repository location) Discussed with: simon (so)
		
			
				
	
	
		
			84 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Index: usr.sbin/ypserv/yp_access.c
 | |
| ===================================================================
 | |
| RCS file: /home/ncvs/src/usr.sbin/ypserv/yp_access.c,v
 | |
| retrieving revision 1.22
 | |
| diff -u -I__FBSDID -r1.22 yp_access.c
 | |
| --- usr.sbin/ypserv/yp_access.c	3 May 2003 21:06:42 -0000	1.22
 | |
| +++ usr.sbin/ypserv/yp_access.c	31 May 2006 03:41:25 -0000
 | |
| @@ -87,12 +87,6 @@
 | |
|  	"ypproc_maplist"
 | |
|  };
 | |
|  
 | |
| -#ifdef TCP_WRAPPER
 | |
| -void
 | |
| -load_securenets(void)
 | |
| -{
 | |
| -}
 | |
| -#else
 | |
|  struct securenet {
 | |
|  	struct in_addr net;
 | |
|  	struct in_addr mask;
 | |
| @@ -177,7 +171,6 @@
 | |
|  	fclose(fp);
 | |
|  
 | |
|  }
 | |
| -#endif
 | |
|  
 | |
|  /*
 | |
|   * Access control functions.
 | |
| @@ -219,11 +212,12 @@
 | |
|  #endif
 | |
|  {
 | |
|  	struct sockaddr_in *rqhost;
 | |
| -	int status = 0;
 | |
| +	int status_securenets = 0;
 | |
| +#ifdef TCP_WRAPPER
 | |
| +	int status_tcpwrap;
 | |
| +#endif
 | |
|  	static unsigned long oldaddr = 0;
 | |
| -#ifndef TCP_WRAPPER
 | |
|  	struct securenet *tmp;
 | |
| -#endif
 | |
|  	const char *yp_procedure = NULL;
 | |
|  	char procbuf[50];
 | |
|  
 | |
| @@ -274,21 +268,34 @@
 | |
|  	}
 | |
|  
 | |
|  #ifdef TCP_WRAPPER
 | |
| -	status = hosts_ctl("ypserv", STRING_UNKNOWN,
 | |
| +	status_tcpwrap = hosts_ctl("ypserv", STRING_UNKNOWN,
 | |
|  			   inet_ntoa(rqhost->sin_addr), "");
 | |
| -#else
 | |
| +#endif
 | |
|  	tmp = securenets;
 | |
|  	while (tmp) {
 | |
|  		if (((rqhost->sin_addr.s_addr & ~tmp->mask.s_addr)
 | |
|  		    | tmp->net.s_addr) == rqhost->sin_addr.s_addr) {
 | |
| -			status = 1;
 | |
| +			status_securenets = 1;
 | |
|  			break;
 | |
|  		}
 | |
|  		tmp = tmp->next;
 | |
|  	}
 | |
| -#endif
 | |
|  
 | |
| -	if (!status) {
 | |
| +#ifdef TCP_WRAPPER
 | |
| +	if (status_securenets == 0 || status_tcpwrap == 0) {
 | |
| +#else
 | |
| +	if (status_securenets == 0) {
 | |
| +#endif
 | |
| +	/*
 | |
| +	 * One of the following two events occured:
 | |
| +	 *
 | |
| +	 * (1) The /var/yp/securenets exists and the remote host does not
 | |
| +	 *     match any of the networks specified in it.
 | |
| +	 * (2) The hosts.allow file has denied access and TCP_WRAPPER is
 | |
| +	 *     defined.
 | |
| +	 *
 | |
| +	 * In either case deny access.
 | |
| +	 */
 | |
|  		if (rqhost->sin_addr.s_addr != oldaddr) {
 | |
|  			yp_error("connect from %s:%d to procedure %s refused",
 | |
|  					inet_ntoa(rqhost->sin_addr),
 |