ecryptfs: Replace strcpy with strscpy in ecryptfs_validate_options
authorThorsten Blum <thorsten.blum@linux.dev>
Sat, 13 Dec 2025 11:04:54 +0000 (12:04 +0100)
committerTyler Hicks <code@tyhicks.com>
Tue, 23 Dec 2025 21:23:23 +0000 (15:23 -0600)
strcpy() has been deprecated [1] because it performs no bounds checking
on the destination buffer, which can lead to buffer overflows. Replace
it with the safer strscpy().

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strcpy
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Signed-off-by: Tyler Hicks <code@tyhicks.com>
fs/ecryptfs/main.c

index c12dc68..7d51e6b 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/fs_stack.h>
 #include <linux/sysfs.h>
 #include <linux/slab.h>
+#include <linux/string.h>
 #include <linux/magic.h>
 #include "ecryptfs_kernel.h"
 
@@ -354,13 +355,13 @@ static int ecryptfs_validate_options(struct fs_context *fc)
                int cipher_name_len = strlen(ECRYPTFS_DEFAULT_CIPHER);
 
                BUG_ON(cipher_name_len > ECRYPTFS_MAX_CIPHER_NAME_SIZE);
-               strcpy(mount_crypt_stat->global_default_cipher_name,
-                      ECRYPTFS_DEFAULT_CIPHER);
+               strscpy(mount_crypt_stat->global_default_cipher_name,
+                       ECRYPTFS_DEFAULT_CIPHER);
        }
        if ((mount_crypt_stat->flags & ECRYPTFS_GLOBAL_ENCRYPT_FILENAMES)
            && !ctx->fn_cipher_name_set)
-               strcpy(mount_crypt_stat->global_default_fn_cipher_name,
-                      mount_crypt_stat->global_default_cipher_name);
+               strscpy(mount_crypt_stat->global_default_fn_cipher_name,
+                       mount_crypt_stat->global_default_cipher_name);
        if (!ctx->cipher_key_bytes_set)
                mount_crypt_stat->global_default_cipher_key_size = 0;
        if ((mount_crypt_stat->flags & ECRYPTFS_GLOBAL_ENCRYPT_FILENAMES)