From: Matija Glavinic Pecotic Date: Thu, 6 Feb 2014 07:30:10 +0000 (+0100) Subject: net: sctp: fix initialization of local source address on accepted ipv6 sockets X-Git-Tag: v3.14-rc3~36^2~37 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=661dbf34129cecd20879cb7b1cbe936911da0f02;p=~emulex%2Finfiniband.git 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 Signed-off-by: David S. Miller --- diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c index 0f6259a6a93..2b1738ef939 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)) {