mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-10 07:10:27 +00:00
net-tcp: fix panic in tcp_fastopen_cache_set()
We had some reports of crashes using TCP fastopen, and Dave Jones gave a nice stack trace pointing to the error. Issue is that tcp_get_metrics() should not be called with a NULL dst Fixes: 1fe4c481ba637 ("net-tcp: Fast Open client - cookie cache") Signed-off-by: Eric Dumazet <edumazet@google.com> Reported-by: Dave Jones <davej@redhat.com> Cc: Yuchung Cheng <ycheng@google.com> Acked-by: Yuchung Cheng <ycheng@google.com> Tested-by: Dave Jones <davej@fedoraproject.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b869ccfab1
commit
dccf76ca6b
@ -663,10 +663,13 @@ void tcp_fastopen_cache_get(struct sock *sk, u16 *mss,
|
||||
void tcp_fastopen_cache_set(struct sock *sk, u16 mss,
|
||||
struct tcp_fastopen_cookie *cookie, bool syn_lost)
|
||||
{
|
||||
struct dst_entry *dst = __sk_dst_get(sk);
|
||||
struct tcp_metrics_block *tm;
|
||||
|
||||
if (!dst)
|
||||
return;
|
||||
rcu_read_lock();
|
||||
tm = tcp_get_metrics(sk, __sk_dst_get(sk), true);
|
||||
tm = tcp_get_metrics(sk, dst, true);
|
||||
if (tm) {
|
||||
struct tcp_fastopen_metrics *tfom = &tm->tcpm_fastopen;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user