diff options
author | Yan, Zheng <zheng.z.yan@intel.com> | 2011-09-24 22:21:30 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-11-11 12:36:28 -0500 |
commit | 2146d4667b5fbdb0e186ca8bc6d9cbe7ac42dfdc (patch) | |
tree | 561d219cf140a17e6d0c4275acef2d55e9744fe8 /net | |
parent | ec668dbad7f732767d5484e1c7b317c767777f27 (diff) |
ipv6: nullify ipv6_ac_list and ipv6_fl_list when creating new socket
[ Upstream commit 676a1184e8afd4fed7948232df1ff91517400859 ]
ipv6_ac_list and ipv6_fl_list from listening socket are inadvertently
shared with new socket created for connection.
Signed-off-by: Zheng Yan <zheng.z.yan@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv6/tcp_ipv6.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index af78a16c830..296510a82c3 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
@@ -1409,6 +1409,8 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb, | |||
1409 | newtp->af_specific = &tcp_sock_ipv6_mapped_specific; | 1409 | newtp->af_specific = &tcp_sock_ipv6_mapped_specific; |
1410 | #endif | 1410 | #endif |
1411 | 1411 | ||
1412 | newnp->ipv6_ac_list = NULL; | ||
1413 | newnp->ipv6_fl_list = NULL; | ||
1412 | newnp->pktoptions = NULL; | 1414 | newnp->pktoptions = NULL; |
1413 | newnp->opt = NULL; | 1415 | newnp->opt = NULL; |
1414 | newnp->mcast_oif = inet6_iif(skb); | 1416 | newnp->mcast_oif = inet6_iif(skb); |
@@ -1473,6 +1475,7 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb, | |||
1473 | First: no IPv4 options. | 1475 | First: no IPv4 options. |
1474 | */ | 1476 | */ |
1475 | newinet->inet_opt = NULL; | 1477 | newinet->inet_opt = NULL; |
1478 | newnp->ipv6_ac_list = NULL; | ||
1476 | newnp->ipv6_fl_list = NULL; | 1479 | newnp->ipv6_fl_list = NULL; |
1477 | 1480 | ||
1478 | /* Clone RX bits */ | 1481 | /* Clone RX bits */ |