On Thu, Mar 9, 2017 at 3:40 PM, Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote: > On Thu, 2017-03-09 at 14:42 +1100, Jonathan Maxwell wrote: >> Sorry let me resend in plain text mode. >> >> On Thu, Mar 9, 2017 at 1:10 PM, Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote: >> > On Thu, 2017-03-09 at 12:15 +1100, Jon Maxwell wrote: >> >> We have seen a few incidents lately where a dst_enty has been freed >> >> with a dangling TCP socket reference (sk->sk_dst_cache) pointing to that >> >> dst_entry. If the conditions/timings are right a crash then ensues when the >> >> freed dst_entry is referenced later on. A Common crashing back trace is: >> > >> > Very nice catch ! >> > >> >> Thanks Eric. >> >> > Don't we have a similar issue for IPv6 ? >> > >> > >> >> Good point. >> >> We checked and as far as we can tell IPv6 does not invalidate the route. >> So it should be safer. > > Simply doing : > > __sk_dst_check(sk, np->dst_cookie); > > is racy, even before calling dst->ops->redirect(dst, sk, skb); > > (if socket is owned by user) > > > Okay, I will add a similar patch for IPv6 to also protect from that. -- To unsubscribe from this list: send the line "unsubscribe dccp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html