Message ID | eeea6163-7b69-ac3b-223d-8cc1afef6c7f@users.sourceforge.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 8/21/2016 11:26 AM, SF Markus Elfring wrote: > From: Markus Elfring <elfring@users.sourceforge.net> > Date: Sun, 21 Aug 2016 20:17:36 +0200 > > 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> Applied to git://github.com/cschaufler/smack-next.git#smack-for-4.9 > --- > 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 e249a66..6492fe9 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, > 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)) { -- To unsubscribe from this list: send the line "unsubscribe linux-security-module" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/security/smack/smackfs.c b/security/smack/smackfs.c index e249a66..6492fe9 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, 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)) {