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)
		
			
				
	
	
		
			81 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Index: src/sys/netinet/ip6.h
 | |
| diff -c src/sys/netinet/ip6.h:1.10 src/sys/netinet/ip6.h:1.11
 | |
| *** sys/netinet/ip6.h:1.10	Sat Oct 25 05:57:08 2003
 | |
| --- sys/netinet/ip6.h	Fri Mar 26 13:52:18 2004
 | |
| ***************
 | |
| *** 213,218 ****
 | |
| --- 213,219 ----
 | |
|   
 | |
|   #define IPV6_MMTU	1280	/* minimal MTU and reassembly. 1024 + 256 */
 | |
|   #define IPV6_MAXPACKET	65535	/* ip6 max packet size without Jumbo payload*/
 | |
| + #define IPV6_MAXOPTHDR	2048	/* max option header size, 256 64-bit words */
 | |
|   
 | |
|   #ifdef _KERNEL
 | |
|   /*
 | |
| Index: src/sys/netinet6/ip6_output.c
 | |
| diff -c src/sys/netinet6/ip6_output.c:1.78 src/sys/netinet6/ip6_output.c:1.79
 | |
| *** sys/netinet6/ip6_output.c:1.78	Tue Feb 17 08:02:37 2004
 | |
| --- sys/netinet6/ip6_output.c	Fri Mar 26 13:52:18 2004
 | |
| ***************
 | |
| *** 1780,1791 ****
 | |
|   					break;
 | |
|   				}
 | |
|   
 | |
| ! 				optbuf = sopt->sopt_val;
 | |
|   				optlen = sopt->sopt_valsize;
 | |
|   				optp = &in6p->in6p_outputopts;
 | |
|   				error = ip6_pcbopt(optname,
 | |
|   						   optbuf, optlen,
 | |
|   						   optp, privileged, uproto);
 | |
|   				break;
 | |
|   			}
 | |
|   #undef OPTSET
 | |
| --- 1780,1827 ----
 | |
|   					break;
 | |
|   				}
 | |
|   
 | |
| ! 				switch (optname) {
 | |
| ! 				case IPV6_HOPOPTS:
 | |
| ! 				case IPV6_DSTOPTS:
 | |
| ! 				case IPV6_RTHDRDSTOPTS:
 | |
| ! 				case IPV6_NEXTHOP:
 | |
| ! 					if (!privileged)
 | |
| ! 						error = EPERM;
 | |
| ! 					break;
 | |
| ! 				}
 | |
| ! 				if (error)
 | |
| ! 					break;
 | |
| ! 
 | |
| ! 				switch (optname) {
 | |
| ! 				case IPV6_PKTINFO:
 | |
| ! 					optlen = sizeof(struct in6_pktinfo);
 | |
| ! 					break;
 | |
| ! 				case IPV6_NEXTHOP:
 | |
| ! 					optlen = SOCK_MAXADDRLEN;
 | |
| ! 					break;
 | |
| ! 				default:
 | |
| ! 					optlen = IPV6_MAXOPTHDR;
 | |
| ! 					break;
 | |
| ! 				}
 | |
| ! 				if (sopt->sopt_valsize > optlen) {
 | |
| ! 					error = EINVAL;
 | |
| ! 					break;
 | |
| ! 				}
 | |
| ! 
 | |
|   				optlen = sopt->sopt_valsize;
 | |
| + 				optbuf = malloc(optlen, M_TEMP, M_WAITOK);
 | |
| + 				error = sooptcopyin(sopt, optbuf, optlen,
 | |
| + 				    optlen);
 | |
| + 				if (error) {
 | |
| + 					free(optbuf, M_TEMP);
 | |
| + 					break;
 | |
| + 				}
 | |
| + 
 | |
|   				optp = &in6p->in6p_outputopts;
 | |
|   				error = ip6_pcbopt(optname,
 | |
|   						   optbuf, optlen,
 | |
|   						   optp, privileged, uproto);
 | |
| + 				free(optbuf, M_TEMP);
 | |
|   				break;
 | |
|   			}
 | |
|   #undef OPTSET
 |