diff options
author | Geliang Tang <geliangtang@gmail.com> | 2017-05-06 11:40:18 -0400 |
---|---|---|
committer | Mimi Zohar <zohar@linux.vnet.ibm.com> | 2017-06-21 14:37:12 -0400 |
commit | b4e280304ddb2fb5b6970524e901fc8ae8ec6337 (patch) | |
tree | 14f5444897b285b272ce18e8573f5f908e6b6683 /security/integrity | |
parent | 5d659f286d58d76064168c4cd7aad61a30d20c44 (diff) |
ima: use memdup_user_nul
Use memdup_user_nul() helper instead of open-coding to simplify the
code.
Signed-off-by: Geliang Tang <geliangtang@gmail.com>
Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
Diffstat (limited to 'security/integrity')
-rw-r--r-- | security/integrity/ima/ima_fs.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_fs.c index ca303e5d2b94..ad491c51e833 100644 --- a/security/integrity/ima/ima_fs.c +++ b/security/integrity/ima/ima_fs.c | |||
@@ -323,16 +323,11 @@ static ssize_t ima_write_policy(struct file *file, const char __user *buf, | |||
323 | if (*ppos != 0) | 323 | if (*ppos != 0) |
324 | goto out; | 324 | goto out; |
325 | 325 | ||
326 | result = -ENOMEM; | 326 | data = memdup_user_nul(buf, datalen); |
327 | data = kmalloc(datalen + 1, GFP_KERNEL); | 327 | if (IS_ERR(data)) { |
328 | if (!data) | 328 | result = PTR_ERR(data); |
329 | goto out; | 329 | goto out; |
330 | 330 | } | |
331 | *(data + datalen) = '\0'; | ||
332 | |||
333 | result = -EFAULT; | ||
334 | if (copy_from_user(data, buf, datalen)) | ||
335 | goto out_free; | ||
336 | 331 | ||
337 | result = mutex_lock_interruptible(&ima_write_mutex); | 332 | result = mutex_lock_interruptible(&ima_write_mutex); |
338 | if (result < 0) | 333 | if (result < 0) |