Skip to contentSkip to conversation

net: sctp: fix initialization of local source address on accepted ipv6 sockets

PATCH Applied Matija Glavinic Pecotic 3 participants 4 messages Feb 6, 2014 – Feb 7, 2014

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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.

net/sctp/ipv6.c +2 -0
@@ -662,6 +662,8 @@ static struct sock *sctp_v6_create_accep
 	 */
 	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)) {
#1 lore raw

Hi Matija,

Quoted 10 lines · Matija Glavinic Pecotic

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.

1) What about the status of http://patchwork.ozlabs.org/patch/311958/ ? Are you still working on a v2?

2) There already has been some discussion in [1,2] about that issue and an RFC patch for net-next has been proposed in [3] for fixing it on a more general scope. I need to get back to that when net-next opens and when I'm back from the conference trip I'm right now. It's however net-next material for sure.

[1] http://patchwork.ozlabs.org/patch/292245/
[2] http://patchwork.ozlabs.org/patch/292352/
[3] http://www.spinics.net/lists/linux-sctp/msg03089.html

Best,

Daniel

Quoted 16 lines
net/sctp/ipv6.c +2 -1
@@ -662,6 +662,8 @@ static struct sock *sctp_v6_create_accep
  	 */
  	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)) {
--

To unsubscribe from this list: send the line "unsubscribe linux-sctp" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#2 lore raw

Hello Daniel,

Quoted 9 lines · ext Daniel Borkmann

Hi Matija,

Quoted 6 lines · Matija Glavinic Pecotic

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.

Quoted 7 lines
Quoted 4 lines

This also fixes lksctp's ipv6 regression in a sense that test_getname_v6, TC5 - 'getsockname on a connected server socket' now passes.

1) What about the status of http://patchwork.ozlabs.org/patch/311958/ ? Are you still working on a v2?

of course, but as I mentioned, patch breaks regression. I can justify that, but I need to fix those broken TCs. This one got in a way while doing that. I'm also a bit busy lately so thats why I'm slower on that one.

Quoted 5 lines

2) There already has been some discussion in [1,2] about that issue and an RFC patch for net-next has been proposed in [3] for fixing it on a more general scope. I need to get back to that when net-next opens and when I'm back from the conference trip I'm right now. It's however net-next material for sure.

yes, that one seems to be better solution.

Regards,

Matija

Quoted 24 lines

[1] http://patchwork.ozlabs.org/patch/292245/
[2] http://patchwork.ozlabs.org/patch/292352/
[3] http://www.spinics.net/lists/linux-sctp/msg03089.html

Best,

Daniel

Quoted 16 lines
net/sctp/ipv6.c +2 -0
@@ -662,6 +662,8 @@ static struct sock *sctp_v6_create_accep
       */
      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)) {
Signature · 3 lines
To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
maintainer Applied
#3 lore raw
In reply to Matija Glavinic Pecotic

From: Matija Glavinic Pecotic <[email protected]>
Date: Thu, 06 Feb 2014 08:30:10 +0100

Quoted 10 lines

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.

Applied.