aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeliang Tang <geliangtang@163.com>2015-10-21 09:04:46 -0400
committerDavid Howells <dhowells@redhat.com>2015-10-21 10:18:35 -0400
commitd0e0eba043c78b1d6ce3d29367abb41446d83747 (patch)
tree1c86a75564f33450917f0ea9468bc1dd47ef994f
parent09302fd19efbff9569eaad3f78ead8f411defd87 (diff)
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>
-rw-r--r--security/keys/keyctl.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c
index 0b9ec78a7a7a..6110fa498494 100644
--- a/security/keys/keyctl.c
+++ b/security/keys/keyctl.c
@@ -67,7 +67,6 @@ SYSCALL_DEFINE5(add_key, const char __user *, _type,
67 char type[32], *description; 67 char type[32], *description;
68 void *payload; 68 void *payload;
69 long ret; 69 long ret;
70 bool vm;
71 70
72 ret = -EINVAL; 71 ret = -EINVAL;
73 if (plen > 1024 * 1024 - 1) 72 if (plen > 1024 * 1024 - 1)
@@ -98,14 +97,12 @@ SYSCALL_DEFINE5(add_key, const char __user *, _type,
98 /* pull the payload in if one was supplied */ 97 /* pull the payload in if one was supplied */
99 payload = NULL; 98 payload = NULL;
100 99
101 vm = false;
102 if (_payload) { 100 if (_payload) {
103 ret = -ENOMEM; 101 ret = -ENOMEM;
104 payload = kmalloc(plen, GFP_KERNEL | __GFP_NOWARN); 102 payload = kmalloc(plen, GFP_KERNEL | __GFP_NOWARN);
105 if (!payload) { 103 if (!payload) {
106 if (plen <= PAGE_SIZE) 104 if (plen <= PAGE_SIZE)
107 goto error2; 105 goto error2;
108 vm = true;
109 payload = vmalloc(plen); 106 payload = vmalloc(plen);
110 if (!payload) 107 if (!payload)
111 goto error2; 108 goto error2;
@@ -138,10 +135,7 @@ SYSCALL_DEFINE5(add_key, const char __user *, _type,
138 135
139 key_ref_put(keyring_ref); 136 key_ref_put(keyring_ref);
140 error3: 137 error3:
141 if (!vm) 138 kvfree(payload);
142 kfree(payload);
143 else
144 vfree(payload);
145 error2: 139 error2:
146 kfree(description); 140 kfree(description);
147 error: 141 error: