diff options
Diffstat (limited to 'net/core/sock.c')
-rw-r--r-- | net/core/sock.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/net/core/sock.c b/net/core/sock.c index bba9949681ff..fdacf9c8f1cb 100644 --- a/net/core/sock.c +++ b/net/core/sock.c | |||
@@ -857,6 +857,20 @@ static inline void sock_lock_init(struct sock *sk) | |||
857 | af_family_keys + sk->sk_family); | 857 | af_family_keys + sk->sk_family); |
858 | } | 858 | } |
859 | 859 | ||
860 | static void sock_copy(struct sock *nsk, const struct sock *osk) | ||
861 | { | ||
862 | #ifdef CONFIG_SECURITY_NETWORK | ||
863 | void *sptr = nsk->sk_security; | ||
864 | #endif | ||
865 | |||
866 | memcpy(nsk, osk, osk->sk_prot->obj_size); | ||
867 | get_net(nsk->sk_net); | ||
868 | #ifdef CONFIG_SECURITY_NETWORK | ||
869 | nsk->sk_security = sptr; | ||
870 | security_sk_clone(osk, nsk); | ||
871 | #endif | ||
872 | } | ||
873 | |||
860 | /** | 874 | /** |
861 | * sk_alloc - All socket objects are allocated here | 875 | * sk_alloc - All socket objects are allocated here |
862 | * @net: the applicable net namespace | 876 | * @net: the applicable net namespace |