aboutsummaryrefslogtreecommitdiffstats
path: root/security
diff options
context:
space:
mode:
authorMarkus Elfring <elfring@users.sourceforge.net>2016-08-21 14:17:36 -0400
committerCasey Schaufler <casey@schaufler-ca.com>2016-08-23 12:58:21 -0400
commit63e24c497158c066583b9c06378d89ace694265a (patch)
treea9ae72852efa1c4ed56968e501f226fd672e0308 /security
parent29b4817d4018df78086157ea3a55c1d9424a7cfc (diff)
Smack: Use memdup_user() rather than duplicating its implementation
Reuse existing functionality from memdup_user() instead of keeping duplicate source code. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> Acked-by: Casey Schaufler <casey@schaufler-ca.com>
Diffstat (limited to 'security')
-rw-r--r--security/smack/smackfs.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/security/smack/smackfs.c b/security/smack/smackfs.c
index e249a66db533..6492fe96cae4 100644
--- a/security/smack/smackfs.c
+++ b/security/smack/smackfs.c
@@ -2523,14 +2523,9 @@ static ssize_t smk_write_revoke_subj(struct file *file, const char __user *buf,
2523 if (count == 0 || count > SMK_LONGLABEL) 2523 if (count == 0 || count > SMK_LONGLABEL)
2524 return -EINVAL; 2524 return -EINVAL;
2525 2525
2526 data = kzalloc(count, GFP_KERNEL); 2526 data = memdup_user(buf, count);
2527 if (data == NULL) 2527 if (IS_ERR(data))
2528 return -ENOMEM; 2528 return PTR_ERR(data);
2529
2530 if (copy_from_user(data, buf, count) != 0) {
2531 rc = -EFAULT;
2532 goto out_data;
2533 }
2534 2529
2535 cp = smk_parse_smack(data, count); 2530 cp = smk_parse_smack(data, count);
2536 if (IS_ERR(cp)) { 2531 if (IS_ERR(cp)) {