sock: Use unsafe_memcpy() for sock_copy()
[sfrench/cifs-2.6.git] / net / core / sock.c
index df2ac54a8f74e75881eb3dcf59e150a55b36eb99..43bf3818c19e829b47d3989d36e2e1b3bf985438 100644 (file)
@@ -2053,8 +2053,9 @@ static void sock_copy(struct sock *nsk, const struct sock *osk)
 
        memcpy(nsk, osk, offsetof(struct sock, sk_dontcopy_begin));
 
-       memcpy(&nsk->sk_dontcopy_end, &osk->sk_dontcopy_end,
-              prot->obj_size - offsetof(struct sock, sk_dontcopy_end));
+       unsafe_memcpy(&nsk->sk_dontcopy_end, &osk->sk_dontcopy_end,
+                     prot->obj_size - offsetof(struct sock, sk_dontcopy_end),
+                     /* alloc is larger than struct, see sk_prot_alloc() */);
 
 #ifdef CONFIG_SECURITY_NETWORK
        nsk->sk_security = sptr;