summaryrefslogtreecommitdiff
path: root/crypto/af_alg.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/af_alg.c')
-rw-r--r--crypto/af_alg.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/crypto/af_alg.c b/crypto/af_alg.c
index dd0e5be4d8c0..5a00c18eb145 100644
--- a/crypto/af_alg.c
+++ b/crypto/af_alg.c
@@ -324,15 +324,13 @@ static int alg_setkey_by_key_serial(struct alg_sock *ask, sockptr_t optval,
return PTR_ERR(ret);
}
- key_data = sock_kmalloc(&ask->sk, key_datalen, GFP_KERNEL);
+ key_data = sock_kmemdup(&ask->sk, ret, key_datalen, GFP_KERNEL);
if (!key_data) {
up_read(&key->sem);
key_put(key);
return -ENOMEM;
}
- memcpy(key_data, ret, key_datalen);
-
up_read(&key->sem);
key_put(key);