diff options
| author | Jakub Kicinski <kuba@kernel.org> | 2026-07-21 09:15:00 -0700 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-07-21 09:15:01 -0700 |
| commit | fca68249b6f5e84859b200b54cb5e0aef98f2b3a (patch) | |
| tree | ef26f03300c71b80d40b91f4a3168ace031dcc6f | |
| parent | 4bf22afe53a1de4b44b04cf677fd5199089cbdff (diff) | |
| parent | d50557779257a00162411e3048d82971ff1f644c (diff) | |
| download | linux-next-fca68249b6f5e84859b200b54cb5e0aef98f2b3a.tar.gz linux-next-fca68249b6f5e84859b200b54cb5e0aef98f2b3a.zip | |
Merge branch 'net-fix-two-issues-in-sk_clone-error-path'
Kuniyuki Iwashima says:
====================
net: Fix two issues in sk_clone() error path.
Sashiko reported issues in the sk_clone() error path.
https://lore.kernel.org/bpf/20260709032007.9E4D61F000E9@smtp.kernel.org/
This series fixes them.
====================
Link: https://patch.msgid.link/20260709183315.965751-1-kuniyu@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
| -rw-r--r-- | net/core/sock.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/net/core/sock.c b/net/core/sock.c index 8a59bfaa8096..504d82a3aacd 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -2544,6 +2544,11 @@ struct sock *sk_clone(const struct sock *sk, const gfp_t priority, cgroup_sk_clone(&newsk->sk_cgrp_data); + RCU_INIT_POINTER(newsk->sk_reuseport_cb, NULL); + + if (sock_needs_netstamp(sk) && newsk->sk_flags & SK_FLAGS_TIMESTAMP) + net_enable_timestamp(); + rcu_read_lock(); filter = rcu_dereference(sk->sk_filter); if (filter != NULL) @@ -2566,8 +2571,6 @@ struct sock *sk_clone(const struct sock *sk, const gfp_t priority, goto free; } - RCU_INIT_POINTER(newsk->sk_reuseport_cb, NULL); - if (bpf_sk_storage_clone(sk, newsk)) goto free; @@ -2595,9 +2598,6 @@ struct sock *sk_clone(const struct sock *sk, const gfp_t priority, if (newsk->sk_prot->sockets_allocated) sk_sockets_allocated_inc(newsk); - - if (sock_needs_netstamp(sk) && newsk->sk_flags & SK_FLAGS_TIMESTAMP) - net_enable_timestamp(); out: return newsk; free: |
