diff options
author | ume <ume@FreeBSD.org> | 2001-06-24 20:25:38 +0000 |
---|---|---|
committer | ume <ume@FreeBSD.org> | 2001-06-24 20:25:38 +0000 |
commit | 6b88781acff0995efd4e78acfa05777e977ad2ed (patch) | |
tree | 051f84e97d8f91900542e1bf8200325684ce0a85 | |
parent | e3cab8dc0ccb8294d22f3d896a277e5404f8d59b (diff) | |
download | FreeBSD-src-6b88781acff0995efd4e78acfa05777e977ad2ed.zip FreeBSD-src-6b88781acff0995efd4e78acfa05777e977ad2ed.tar.gz |
disallow setsockopt(IPV6_V6ONLY) for already bound sockets.
Obtained from: KAME
MFC after: 10 days
-rw-r--r-- | sys/netinet6/ip6_output.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/netinet6/ip6_output.c b/sys/netinet6/ip6_output.c index d6a6e80..d0d072e 100644 --- a/sys/netinet6/ip6_output.c +++ b/sys/netinet6/ip6_output.c @@ -1366,6 +1366,17 @@ do { \ case IPV6_V6ONLY: /* + * make setsockopt(IPV6_V6ONLY) + * available only prior to bind(2). + * see ipng mailing list, Jun 22 2001. + */ + if (in6p->in6p_lport || + !IN6_IS_ADDR_UNSPECIFIED(&in6p->in6p_laddr)) + { + error = EINVAL; + break; + } + /* * XXX: BINDV6ONLY should be integrated * into V6ONLY. */ |