aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/sock.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/core/sock.c')
-rw-r--r--net/core/sock.c14
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
860static 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