diff options
author | Matija Glavinic Pecotic <matija.glavinic-pecotic.ext@nsn.com> | 2014-02-06 08:30:10 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-02-06 21:18:06 -0800 |
commit | 661dbf34129cecd20879cb7b1cbe936911da0f02 (patch) | |
tree | 43043075ade39f36e1a78072adcd8007e81d1fd0 /net/sctp/ipv6.c | |
parent | 3d55f44f563de2ab83209e8ead48d922b0d56a65 (diff) | |
download | linux-661dbf34129cecd20879cb7b1cbe936911da0f02.tar.gz linux-661dbf34129cecd20879cb7b1cbe936911da0f02.tar.bz2 linux-661dbf34129cecd20879cb7b1cbe936911da0f02.zip |
net: sctp: fix initialization of local source address on accepted ipv6 sockets
commit efe4208f47f907b86f528788da711e8ab9dea44d:
'ipv6: make lookups simpler and faster' broke initialization of local source
address on accepted ipv6 sockets. Before the mentioned commit receive address
was copied along with the contents of ipv6_pinfo in sctp_v6_create_accept_sk.
Now when it is moved, it has to be copied separately.
This also fixes lksctp's ipv6 regression in a sense that test_getname_v6, TC5 -
'getsockname on a connected server socket' now passes.
Signed-off-by: Matija Glavinic Pecotic <matija.glavinic-pecotic.ext@nsn.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sctp/ipv6.c')
-rw-r--r-- | net/sctp/ipv6.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c index 0f6259a6a932..2b1738ef9394 100644 --- a/net/sctp/ipv6.c +++ b/net/sctp/ipv6.c @@ -662,6 +662,8 @@ static struct sock *sctp_v6_create_accept_sk(struct sock *sk, */ sctp_v6_to_sk_daddr(&asoc->peer.primary_addr, newsk); + newsk->sk_v6_rcv_saddr = sk->sk_v6_rcv_saddr; + sk_refcnt_debug_inc(newsk); if (newsk->sk_prot->init(newsk)) { |