Re: [PATCH] Smack: Use memdup_user() rather than duplicating its implementation

From: Casey Schaufler
Date: Tue Aug 23 2016 - 18:03:08 EST


On 8/21/2016 11:26 AM, SF Markus Elfring wrote:
> From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
> 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@xxxxxxxxxxxxxxxxxxxxx>

Acked-by: Casey Schaufler <casey@xxxxxxxxxxxxxxxx>

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)) {