Messages in this thread Patch in this message | | | Subject | Re: [2.6.34-rc5-git6] EIP: is at inet6_csk_bind_conflict + 06xe/0xb7 [ipv6] | From | Eric Dumazet <> | Date | Sun, 25 Apr 2010 18:39:57 +0200 |
| |
Le dimanche 25 avril 2010 à 18:36 +0200, Piotr Hosowicz a écrit : > On 25.04.2010 18:31, Sedat Dilek wrote: > > [ CCing netdev ML ] > > > > Confirmed: The revert-patch [1] fixes the problem here. > > I confirm, I've built a git6 kernel and it works fine. > > > See also "Bug 15847 - crash in inet6_csk_bind_conflict" [2]. > > > > Feel free to add a... Tested-by: Sedat Dilek<sedat.dilek@gmail.com> > > I added created and tested phrase in my archive. ;-) Thank you a lot. I > hope there will be no this error in git7. >
Did you test the proposed fix ?
[PATCH] ipv6: Fix inet6_csk_bind_conflict()
Commit fda48a0d7a84 (tcp: bind() fix when many ports are bound) introduced a bug on IPV6 part. We should not call ipv6_addr_any(inet6_rcv_saddr(sk2)) but ipv6_addr_any(inet6_rcv_saddr(sk)) because sk2 can be IPV4, while sk is IPV6.
Reported-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> --- diff --git a/net/ipv6/inet6_connection_sock.c b/net/ipv6/inet6_connection_sock.c index b4b7d40..3a4d92b 100644 --- a/net/ipv6/inet6_connection_sock.c +++ b/net/ipv6/inet6_connection_sock.c @@ -48,7 +48,7 @@ int inet6_csk_bind_conflict(const struct sock *sk, ipv6_rcv_saddr_equal(sk, sk2)) break; else if (sk->sk_reuse && sk2->sk_reuse && - !ipv6_addr_any(inet6_rcv_saddr(sk2)) && + !ipv6_addr_any(inet6_rcv_saddr(sk)) && ipv6_rcv_saddr_equal(sk, sk2)) break; }
-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |