diff options
author | Martin KaFai Lau <kafai@fb.com> | 2019-06-11 23:45:57 +0200 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2019-06-12 16:38:20 +0200 |
commit | f12dd75959b0138f94da8ddcf43f2f3cf277216d (patch) | |
tree | f855d145e55a98bc81e747f916df42bf43577b84 /net/core | |
parent | bpf: lpm_trie: check left child of last leftmost node for NULL (diff) | |
download | linux-f12dd75959b0138f94da8ddcf43f2f3cf277216d.tar.xz linux-f12dd75959b0138f94da8ddcf43f2f3cf277216d.zip |
bpf: net: Set sk_bpf_storage back to NULL for cloned sk
The cloned sk should not carry its parent-listener's sk_bpf_storage.
This patch fixes it by setting it back to NULL.
Fixes: 6ac99e8f23d4 ("bpf: Introduce bpf sk local storage")
Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/sock.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/core/sock.c b/net/core/sock.c index 2b3701958486..d90fd04622e5 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -1850,6 +1850,9 @@ struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority) goto out; } RCU_INIT_POINTER(newsk->sk_reuseport_cb, NULL); +#ifdef CONFIG_BPF_SYSCALL + RCU_INIT_POINTER(newsk->sk_bpf_storage, NULL); +#endif newsk->sk_err = 0; newsk->sk_err_soft = 0; |