summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 0bb609fbec7d..b491e5477c70 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);