svn commit: r324686 - stable/11/sys/netinet

Konstantin Belousov kostikbel at gmail.com
Sun Dec 3 13:39:53 UTC 2017


On Tue, Oct 17, 2017 at 12:42:17PM +0000, Michael Tuexen wrote:
> Author: tuexen
> Date: Tue Oct 17 12:42:17 2017
> New Revision: 324686
> URL: https://svnweb.freebsd.org/changeset/base/324686
> 
> Log:
>   MFC r322648:
>   
>   Ensure inp_vflag is consistently set for TCP endpoints.
>   
>   Make sure that the flags INP_IPV4 and INP_IPV6 are consistently set
>   for inpcbs used for TCP sockets, no matter if the setting is derived
>   from the net.inet6.ip6.v6only sysctl or the IPV6_V6ONLY socket option.
>   For UDP this was already done right.
>   
>   PR:		221385
> 
> Modified:
>   stable/11/sys/netinet/tcp_usrreq.c
> Directory Properties:
>   stable/11/   (props changed)
> 
> Modified: stable/11/sys/netinet/tcp_usrreq.c
> ==============================================================================
> --- stable/11/sys/netinet/tcp_usrreq.c	Tue Oct 17 11:20:32 2017	(r324685)
> +++ stable/11/sys/netinet/tcp_usrreq.c	Tue Oct 17 12:42:17 2017	(r324686)
> @@ -1899,6 +1899,8 @@ tcp_attach(struct socket *so)
>  #ifdef INET6
>  	if (inp->inp_vflag & INP_IPV6PROTO) {
>  		inp->inp_vflag |= INP_IPV6;
> +		if ((inp->inp_flags & IN6P_IPV6_V6ONLY) == 0)
> +			inp->inp_vflag |= INP_IPV4;
>  		inp->in6p_hops = -1;	/* use kernel default */
>  	}
>  	else

I highly suspect that this commit causes the breakage.  Example is taken
from the 'nestat -f inet6 -n' output, but in fact the problem is much
more serious, e.g. squid acls are broken as well:
tcp6       0      0 2001:470:1f14:13.23047 2a03:2880:f003:c.443   ESTABLISHED
tcp46      0      0 0.0.0.1.22             69.223.183.85.58766    ESTABLISHED

The tcp46 and 0.0.0.1 values in the second line are clearly nonsensical.


More information about the svn-src-all mailing list