[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20130626.151534.2092603828301381561.davem@davemloft.net>
Date: Wed, 26 Jun 2013 15:15:34 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: hannes@...essinduktion.org
Cc: eric.dumazet@...il.com, davej@...hat.com, netdev@...r.kernel.org,
steffen.klassert@...unet.com
Subject: Re: oops in udpv6_sendmsg
From: Hannes Frederic Sowa <hannes@...essinduktion.org>
Date: Wed, 26 Jun 2013 15:07:48 +0200
> On Wed, Jun 26, 2013 at 04:15:07AM -0700, Eric Dumazet wrote:
>> Following patch fixes the problem for me :
>
> Cool, thanks Eric!
>
>> [PATCH] ipv6: ip6_sk_dst_check() must not assume ipv6 dst
>>
>> It's possible to use AF_INET6 sockets and to connect to an IPv4
>> destination. After this, socket dst cache is a pointer to a rtable,
>> not rt6_info.
>
> That was my hunch, too. I was unsure where we should destroy the lingering dst.
>
>> ip6_sk_dst_check() should check the socket dst cache is IPv6, or else
>> various corruptions/crashes can happen.
>>
>> Dave Jones can reproduce immediate crash with
>> trinity -q -l off -n -c sendmsg -c connect
>>
>> With help from Hannes Frederic Sowa
>>
>> Reported-by: Dave Jones <davej@...hat.com>
>> Reported-by: Hannes Frederic Sowa <hannes@...essinduktion.org>
>> Signed-off-by: Eric Dumazet <edumazet@...gle.com>
>
> Patch looks good. It also fixes some panics I have seen down lower in
> the netfilter ipv6 code I saw while testing, which I thought may be a
> different issue.
>
> Acked-by: Hannes Frederic Sowa <hannes@...essinduktion.org>
Ok, so the issue can only happen if we switch between using an
ipv4 and an ipv6 binding on an ipv6 socket. Usually if the sockaddr
specified for udp6_sendmsg() is ipv4, we'd go straight to udp_sendmsg().
But if it's ipv4 bound initially, then we get a udp6_sendmsg() with
an ipv6 address, we hit this problem.
Applied and queued up for -stable, thanks!
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists