|
@@ -1225,7 +1225,7 @@ struct sock *sk_clone(const struct sock *sk, const gfp_t priority)
|
|
sock_reset_flag(newsk, SOCK_DONE);
|
|
sock_reset_flag(newsk, SOCK_DONE);
|
|
skb_queue_head_init(&newsk->sk_error_queue);
|
|
skb_queue_head_init(&newsk->sk_error_queue);
|
|
|
|
|
|
- filter = newsk->sk_filter;
|
|
|
|
|
|
+ filter = rcu_dereference_protected(newsk->sk_filter, 1);
|
|
if (filter != NULL)
|
|
if (filter != NULL)
|
|
sk_filter_charge(newsk, filter);
|
|
sk_filter_charge(newsk, filter);
|
|
|
|
|