KEYS: use kvfree() in add_key
There is no need to make a flag to tell that this memory is allocated by kmalloc or vmalloc. Just use kvfree to free the memory. Signed-off-by: Geliang Tang <geliangtang@163.com> Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
parent
09302fd19e
commit
d0e0eba043
1 changed files with 1 additions and 7 deletions
|
@ -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:
|
||||
|
|
Loading…
Reference in a new issue