goto out;
        }
        mutex_init(&tmp_tfm->key_tfm_mutex);
-       strncpy(tmp_tfm->cipher_name, cipher_name,
-               ECRYPTFS_MAX_CIPHER_NAME_SIZE);
-       tmp_tfm->cipher_name[ECRYPTFS_MAX_CIPHER_NAME_SIZE] = '\0';
+       strscpy(tmp_tfm->cipher_name, cipher_name);
        tmp_tfm->key_size = key_size;
        rc = ecryptfs_process_key_cipher(&tmp_tfm->key_tfm,
                                         tmp_tfm->cipher_name,
 
        substring_t args[MAX_OPT_ARGS];
        int token;
        char *sig_src;
-       char *cipher_name_dst;
        char *cipher_name_src;
-       char *fn_cipher_name_dst;
        char *fn_cipher_name_src;
-       char *fnek_dst;
        char *fnek_src;
        char *cipher_key_bytes_src;
        char *fn_cipher_key_bytes_src;
                case ecryptfs_opt_cipher:
                case ecryptfs_opt_ecryptfs_cipher:
                        cipher_name_src = args[0].from;
-                       cipher_name_dst =
-                               mount_crypt_stat->
-                               global_default_cipher_name;
-                       strncpy(cipher_name_dst, cipher_name_src,
-                               ECRYPTFS_MAX_CIPHER_NAME_SIZE);
-                       cipher_name_dst[ECRYPTFS_MAX_CIPHER_NAME_SIZE] = '\0';
+                       strscpy(mount_crypt_stat->global_default_cipher_name,
+                               cipher_name_src);
                        cipher_name_set = 1;
                        break;
                case ecryptfs_opt_ecryptfs_key_bytes:
                        break;
                case ecryptfs_opt_fnek_sig:
                        fnek_src = args[0].from;
-                       fnek_dst =
-                               mount_crypt_stat->global_default_fnek_sig;
-                       strncpy(fnek_dst, fnek_src, ECRYPTFS_SIG_SIZE_HEX);
-                       mount_crypt_stat->global_default_fnek_sig[
-                               ECRYPTFS_SIG_SIZE_HEX] = '\0';
+                       strscpy(mount_crypt_stat->global_default_fnek_sig,
+                               fnek_src);
                        rc = ecryptfs_add_global_auth_tok(
                                mount_crypt_stat,
                                mount_crypt_stat->global_default_fnek_sig,
                        break;
                case ecryptfs_opt_fn_cipher:
                        fn_cipher_name_src = args[0].from;
-                       fn_cipher_name_dst =
-                               mount_crypt_stat->global_default_fn_cipher_name;
-                       strncpy(fn_cipher_name_dst, fn_cipher_name_src,
-                               ECRYPTFS_MAX_CIPHER_NAME_SIZE);
-                       mount_crypt_stat->global_default_fn_cipher_name[
-                               ECRYPTFS_MAX_CIPHER_NAME_SIZE] = '\0';
+                       strscpy(mount_crypt_stat->global_default_fn_cipher_name,
+                               fn_cipher_name_src);
                        fn_cipher_name_set = 1;
                        break;
                case ecryptfs_opt_fn_cipher_key_bytes: