|
@@ -67,7 +67,6 @@ SYSCALL_DEFINE5(add_key, const char __user *, _type,
|
|
|
char type[32], *description;
|
|
|
void *payload;
|
|
|
long ret;
|
|
|
- bool vm;
|
|
|
|
|
|
ret = -EINVAL;
|
|
|
if (plen > 1024 * 1024 - 1)
|
|
@@ -98,14 +97,12 @@ SYSCALL_DEFINE5(add_key, const char __user *, _type,
|
|
|
/* pull the payload in if one was supplied */
|
|
|
payload = NULL;
|
|
|
|
|
|
- vm = false;
|
|
|
if (_payload) {
|
|
|
ret = -ENOMEM;
|
|
|
payload = kmalloc(plen, GFP_KERNEL | __GFP_NOWARN);
|
|
|
if (!payload) {
|
|
|
if (plen <= PAGE_SIZE)
|
|
|
goto error2;
|
|
|
- vm = true;
|
|
|
payload = vmalloc(plen);
|
|
|
if (!payload)
|
|
|
goto error2;
|
|
@@ -138,10 +135,7 @@ SYSCALL_DEFINE5(add_key, const char __user *, _type,
|
|
|
|
|
|
key_ref_put(keyring_ref);
|
|
|
error3:
|
|
|
- if (!vm)
|
|
|
- kfree(payload);
|
|
|
- else
|
|
|
- vfree(payload);
|
|
|
+ kvfree(payload);
|
|
|
error2:
|
|
|
kfree(description);
|
|
|
error:
|