| From 83eaddab4378db256d00d295bda6ca997cd13a52 Mon Sep 17 00:00:00 2001 |
| From: WANG Cong <xiyou.wangcong@gmail.com> |
| Date: Tue, 9 May 2017 16:59:54 -0700 |
| Subject: ipv6/dccp: do not inherit ipv6_mc_list from parent |
| |
| From: WANG Cong <xiyou.wangcong@gmail.com> |
| |
| commit 83eaddab4378db256d00d295bda6ca997cd13a52 upstream. |
| |
| Like commit 657831ffc38e ("dccp/tcp: do not inherit mc_list from parent") |
| we should clear ipv6_mc_list etc. for IPv6 sockets too. |
| |
| Cc: Eric Dumazet <edumazet@google.com> |
| Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> |
| Acked-by: Eric Dumazet <edumazet@google.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Connor O'Brien <connoro@google.com> |
| [AmitP: cherry-picked this backported commit from android-3.18] |
| Signed-off-by: Amit Pundir <amit.pundir@linaro.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/dccp/ipv6.c | 7 +++++++ |
| net/ipv6/tcp_ipv6.c | 2 ++ |
| 2 files changed, 9 insertions(+) |
| |
| --- a/net/dccp/ipv6.c |
| +++ b/net/dccp/ipv6.c |
| @@ -487,6 +487,9 @@ static struct sock *dccp_v6_request_recv |
| newsk->sk_backlog_rcv = dccp_v4_do_rcv; |
| newnp->pktoptions = NULL; |
| newnp->opt = NULL; |
| + newnp->ipv6_mc_list = NULL; |
| + newnp->ipv6_ac_list = NULL; |
| + newnp->ipv6_fl_list = NULL; |
| newnp->mcast_oif = inet6_iif(skb); |
| newnp->mcast_hops = ipv6_hdr(skb)->hop_limit; |
| |
| @@ -562,6 +565,10 @@ static struct sock *dccp_v6_request_recv |
| /* Clone RX bits */ |
| newnp->rxopt.all = np->rxopt.all; |
| |
| + newnp->ipv6_mc_list = NULL; |
| + newnp->ipv6_ac_list = NULL; |
| + newnp->ipv6_fl_list = NULL; |
| + |
| /* Clone pktoptions received with SYN */ |
| newnp->pktoptions = NULL; |
| if (ireq->pktopts != NULL) { |
| --- a/net/ipv6/tcp_ipv6.c |
| +++ b/net/ipv6/tcp_ipv6.c |
| @@ -1113,6 +1113,7 @@ static struct sock *tcp_v6_syn_recv_sock |
| newtp->af_specific = &tcp_sock_ipv6_mapped_specific; |
| #endif |
| |
| + newnp->ipv6_mc_list = NULL; |
| newnp->ipv6_ac_list = NULL; |
| newnp->ipv6_fl_list = NULL; |
| newnp->pktoptions = NULL; |
| @@ -1184,6 +1185,7 @@ static struct sock *tcp_v6_syn_recv_sock |
| First: no IPv4 options. |
| */ |
| newinet->inet_opt = NULL; |
| + newnp->ipv6_mc_list = NULL; |
| newnp->ipv6_ac_list = NULL; |
| newnp->ipv6_fl_list = NULL; |
| |