Module Name: src Committed By: roy Date: Thu Sep 29 12:19:47 UTC 2016
Modified Files: src/sys/netinet: in_pcb.c raw_ip.c src/sys/netinet6: in6_pcb.c raw_ip6.c Log Message: Now that we disallow sending or receiving from invalid addresses, allow binding to tentative addresses. To generate a diff of this commit: cvs rdiff -u -r1.169 -r1.170 src/sys/netinet/in_pcb.c cvs rdiff -u -r1.160 -r1.161 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.149 -r1.150 src/sys/netinet6/in6_pcb.c cvs rdiff -u -r1.150 -r1.151 src/sys/netinet6/raw_ip6.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/netinet/in_pcb.c diff -u src/sys/netinet/in_pcb.c:1.169 src/sys/netinet/in_pcb.c:1.170 --- src/sys/netinet/in_pcb.c:1.169 Fri Aug 26 23:12:06 2016 +++ src/sys/netinet/in_pcb.c Thu Sep 29 12:19:47 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: in_pcb.c,v 1.169 2016/08/26 23:12:06 roy Exp $ */ +/* $NetBSD: in_pcb.c,v 1.170 2016/09/29 12:19:47 roy Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -93,7 +93,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: in_pcb.c,v 1.169 2016/08/26 23:12:06 roy Exp $"); +__KERNEL_RCSID(0, "$NetBSD: in_pcb.c,v 1.170 2016/09/29 12:19:47 roy Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -297,7 +297,7 @@ in_pcbbind_addr(struct inpcb *inp, struc } if (ia == NULL) goto error; - if (ia->ia4_flags & IN_IFF_NOTREADY) + if (ia->ia4_flags & IN_IFF_DUPLICATED) goto error; } pserialize_read_exit(s); Index: src/sys/netinet/raw_ip.c diff -u src/sys/netinet/raw_ip.c:1.160 src/sys/netinet/raw_ip.c:1.161 --- src/sys/netinet/raw_ip.c:1.160 Fri Aug 26 23:12:06 2016 +++ src/sys/netinet/raw_ip.c Thu Sep 29 12:19:47 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: raw_ip.c,v 1.160 2016/08/26 23:12:06 roy Exp $ */ +/* $NetBSD: raw_ip.c,v 1.161 2016/09/29 12:19:47 roy Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -65,7 +65,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: raw_ip.c,v 1.160 2016/08/26 23:12:06 roy Exp $"); +__KERNEL_RCSID(0, "$NetBSD: raw_ip.c,v 1.161 2016/09/29 12:19:47 roy Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -581,7 +581,7 @@ rip_bind(struct socket *so, struct socka error = EADDRNOTAVAIL; goto release; } - if (ifa && (ifatoia(ifa))->ia4_flags & IN6_IFF_NOTREADY) { + if (ifa && (ifatoia(ifa))->ia4_flags & IN6_IFF_DUPLICATED) { pserialize_read_exit(ss); error = EADDRNOTAVAIL; goto release; Index: src/sys/netinet6/in6_pcb.c diff -u src/sys/netinet6/in6_pcb.c:1.149 src/sys/netinet6/in6_pcb.c:1.150 --- src/sys/netinet6/in6_pcb.c:1.149 Fri Aug 26 19:53:07 2016 +++ src/sys/netinet6/in6_pcb.c Thu Sep 29 12:19:47 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: in6_pcb.c,v 1.149 2016/08/26 19:53:07 roy Exp $ */ +/* $NetBSD: in6_pcb.c,v 1.150 2016/09/29 12:19:47 roy Exp $ */ /* $KAME: in6_pcb.c,v 1.84 2001/02/08 18:02:08 itojun Exp $ */ /* @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: in6_pcb.c,v 1.149 2016/08/26 19:53:07 roy Exp $"); +__KERNEL_RCSID(0, "$NetBSD: in6_pcb.c,v 1.150 2016/09/29 12:19:47 roy Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -271,7 +271,7 @@ in6_pcbbind_addr(struct in6pcb *in6p, st */ if (ifa && ifatoia6(ifa)->ia6_flags & - (IN6_IFF_ANYCAST | IN6_IFF_NOTREADY)) { + (IN6_IFF_ANYCAST | IN6_IFF_DUPLICATED)) { error = EADDRNOTAVAIL; goto out; } Index: src/sys/netinet6/raw_ip6.c diff -u src/sys/netinet6/raw_ip6.c:1.150 src/sys/netinet6/raw_ip6.c:1.151 --- src/sys/netinet6/raw_ip6.c:1.150 Fri Aug 26 19:53:07 2016 +++ src/sys/netinet6/raw_ip6.c Thu Sep 29 12:19:47 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: raw_ip6.c,v 1.150 2016/08/26 19:53:07 roy Exp $ */ +/* $NetBSD: raw_ip6.c,v 1.151 2016/09/29 12:19:47 roy Exp $ */ /* $KAME: raw_ip6.c,v 1.82 2001/07/23 18:57:56 jinmei Exp $ */ /* @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: raw_ip6.c,v 1.150 2016/08/26 19:53:07 roy Exp $"); +__KERNEL_RCSID(0, "$NetBSD: raw_ip6.c,v 1.151 2016/09/29 12:19:47 roy Exp $"); #ifdef _KERNEL_OPT #include "opt_ipsec.h" @@ -700,7 +700,7 @@ rip6_bind(struct socket *so, struct sock goto out; } if (ifa && (ifatoia6(ifa))->ia6_flags & - (IN6_IFF_ANYCAST | IN6_IFF_NOTREADY)) { + (IN6_IFF_ANYCAST | IN6_IFF_DUPLICATED)) { error = EADDRNOTAVAIL; goto out; }