[PATCH] ecryptfs: Replace memcpy + NUL termination in ecryptfs_copy_filename

Thorsten Blum posted 1 patch 3 weeks, 6 days ago
fs/ecryptfs/crypto.c | 18 ++++--------------
1 file changed, 4 insertions(+), 14 deletions(-)
[PATCH] ecryptfs: Replace memcpy + NUL termination in ecryptfs_copy_filename
Posted by Thorsten Blum 3 weeks, 6 days ago
Use kmemdup_nul() to copy 'name' instead of using memcpy() followed by a
manual NUL termination.  Remove the local return variable and the goto
label to simplify the code.  No functional changes.

Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
 fs/ecryptfs/crypto.c | 18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)

diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
index d49cdf7292ab..82fc5e1b6324 100644
--- a/fs/ecryptfs/crypto.c
+++ b/fs/ecryptfs/crypto.c
@@ -1422,21 +1422,11 @@ ecryptfs_encrypt_filename(struct ecryptfs_filename *filename,
 static int ecryptfs_copy_filename(char **copied_name, size_t *copied_name_size,
 				  const char *name, size_t name_size)
 {
-	int rc = 0;
-
-	(*copied_name) = kmalloc((name_size + 1), GFP_KERNEL);
-	if (!(*copied_name)) {
-		rc = -ENOMEM;
-		goto out;
-	}
-	memcpy((void *)(*copied_name), (void *)name, name_size);
-	(*copied_name)[(name_size)] = '\0';	/* Only for convenience
-						 * in printing out the
-						 * string in debug
-						 * messages */
+	(*copied_name) = kmemdup_nul(name, name_size, GFP_KERNEL);
+	if (!(*copied_name))
+		return -ENOMEM;
 	(*copied_name_size) = name_size;
-out:
-	return rc;
+	return 0;
 }
 
 /**
-- 
Thorsten Blum <thorsten.blum@linux.dev>
GPG: 1D60 735E 8AEF 3BE4 73B6  9D84 7336 78FD 8DFE EAD4
Re: [PATCH] ecryptfs: Replace memcpy + NUL termination in ecryptfs_copy_filename
Posted by Tyler Hicks 3 weeks, 4 days ago
On 2026-01-11 14:12:58, Thorsten Blum wrote:
> Use kmemdup_nul() to copy 'name' instead of using memcpy() followed by a
> manual NUL termination.  Remove the local return variable and the goto
> label to simplify the code.  No functional changes.
> 
> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>

Thank you for the simplification.

Acked-by: Tyler Hicks <code@tyhicks.com>

Tyler

> ---
>  fs/ecryptfs/crypto.c | 18 ++++--------------
>  1 file changed, 4 insertions(+), 14 deletions(-)
> 
> diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
> index d49cdf7292ab..82fc5e1b6324 100644
> --- a/fs/ecryptfs/crypto.c
> +++ b/fs/ecryptfs/crypto.c
> @@ -1422,21 +1422,11 @@ ecryptfs_encrypt_filename(struct ecryptfs_filename *filename,
>  static int ecryptfs_copy_filename(char **copied_name, size_t *copied_name_size,
>  				  const char *name, size_t name_size)
>  {
> -	int rc = 0;
> -
> -	(*copied_name) = kmalloc((name_size + 1), GFP_KERNEL);
> -	if (!(*copied_name)) {
> -		rc = -ENOMEM;
> -		goto out;
> -	}
> -	memcpy((void *)(*copied_name), (void *)name, name_size);
> -	(*copied_name)[(name_size)] = '\0';	/* Only for convenience
> -						 * in printing out the
> -						 * string in debug
> -						 * messages */
> +	(*copied_name) = kmemdup_nul(name, name_size, GFP_KERNEL);
> +	if (!(*copied_name))
> +		return -ENOMEM;
>  	(*copied_name_size) = name_size;
> -out:
> -	return rc;
> +	return 0;
>  }
>  
>  /**
> -- 
> Thorsten Blum <thorsten.blum@linux.dev>
> GPG: 1D60 735E 8AEF 3BE4 73B6  9D84 7336 78FD 8DFE EAD4
>