KEYS: use kvfree() in add_key
authorGeliang Tang <geliangtang@163.com>
Wed, 21 Oct 2015 13:04:46 +0000 (14:04 +0100)
committerDavid Howells <dhowells@redhat.com>
Wed, 21 Oct 2015 14:18:35 +0000 (15:18 +0100)
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>
security/keys/keyctl.c

index 0b9ec78a7a7ad2b14af1ef0407e051e6dcef29ff..6110fa498494af097b38fbe5202cb55150340d15 100644 (file)
@@ -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: