Smack: Use memdup_user() rather than duplicating its implementation
diff mbox

Message ID eeea6163-7b69-ac3b-223d-8cc1afef6c7f@users.sourceforge.net
State New
Headers show

Commit Message

SF Markus Elfring Aug. 21, 2016, 6:26 p.m. UTC
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>
---
 security/smack/smackfs.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

Comments

Casey Schaufler Aug. 23, 2016, 9:56 p.m. UTC | #1
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

Patch
diff mbox

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