Subject: Re: [PATCH] inet: don't use sk_v6_rcv_saddr directly

From: Josef Bacik <[email-masked]>
Date: Fri, 20 Jan 2017 09:18:32 -0500

On Thu, Jan 19, 2017 at 5:47 PM, Josef Bacik <[email-masked]> wrote:
> When comparing two sockets we need to use inet6_rcv_saddr so we get a 
> NULL
> sk_v6_rcv_saddr if the socket isn't AF_INET6, otherwise our 
> comparison function
> can be wrong.
> 
> Fixes: 637bc8b ("inet: reset tb->fastreuseport when adding a 
> reuseport sk")
> Signed-off-by: Josef Bacik <[email-masked]>
> ---
>  net/ipv4/inet_connection_sock.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/net/ipv4/inet_connection_sock.c 
> b/net/ipv4/inet_connection_sock.c
> index 096a085..a336c42 100644
> --- a/net/ipv4/inet_connection_sock.c
> +++ b/net/ipv4/inet_connection_sock.c
> @@ -99,7 +99,7 @@ int inet_rcv_saddr_equal(const struct sock *sk, 
> const struct sock *sk2,
>  #if IS_ENABLED(CONFIG_IPV6)
>  	if (sk->sk_family == AF_INET6)
>  		return ipv6_rcv_saddr_equal(&sk->sk_v6_rcv_saddr,
> -					    &sk2->sk_v6_rcv_saddr,
> +					    inet6_rcv_saddr(sk2),
>  					    sk->sk_rcv_saddr,
>  					    sk2->sk_rcv_saddr,
>  					    ipv6_only_sock(sk),
> --
> 2.5.5

Sorry I forgot to tag this, it's for net-next.  Thanks,

Josef