From a801bd49a55b58698b93109231bb8dbe2e8104b8 Mon Sep 17 00:00:00 2001 From: Markus Elfring Date: Sun, 21 Aug 2016 20:17:36 +0200 Subject: [PATCH] BACKPORT: 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 Acked-by: Casey Schaufler (cherry-picked from upstream 63e24c497158c066583b9c06378d89ace694265a) --- security/smack/smackfs.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/security/smack/smackfs.c b/security/smack/smackfs.c index 94bd9e41c9ec..8ab5290fb8f3 100644 --- a/security/smack/smackfs.c +++ b/security/smack/smackfs.c @@ -2564,14 +2564,9 @@ static ssize_t smk_write_revoke_subj(struct file *file, const char __user *buf, if (count == 0 || count > SMK_LONGLABEL) return -EINVAL; - data = kzalloc(count, GFP_KERNEL); - if (data == NULL) - return -ENOMEM; - - if (copy_from_user(data, buf, count) != 0) { - rc = -EFAULT; - goto out_data; - } + data = memdup_user(buf, count); + if (IS_ERR(data)) + return PTR_ERR(data); cp = smk_parse_smack(data, count); if (IS_ERR(cp)) { -- 2.34.1