fs/ext4/namei.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
strcpy() is deprecated; use strscpy() instead.
No functional changes intended.
Link: https://github.com/KSPP/linux/issues/88
Cc: linux-hardening@vger.kernel.org
Signed-off-by: Ethan Carter Edwards <ethan@ethancedwards.com>
---
fs/ext4/namei.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
index e9712e64ec8f04586f5ebcd332431e6af92e4f36..85df7fbf8ebd2c5b2aa3a20813f5f8a1aec7f5b7 100644
--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -2926,7 +2926,7 @@ struct ext4_dir_entry_2 *ext4_init_dot_dotdot(struct inode *inode,
de->name_len = 1;
de->rec_len = ext4_rec_len_to_disk(ext4_dir_rec_len(de->name_len, NULL),
blocksize);
- strcpy(de->name, ".");
+ strscpy(de->name, ".");
ext4_set_de_type(inode->i_sb, de, S_IFDIR);
de = ext4_next_entry(de, blocksize);
@@ -2940,7 +2940,7 @@ struct ext4_dir_entry_2 *ext4_init_dot_dotdot(struct inode *inode,
de->rec_len = ext4_rec_len_to_disk(
ext4_dir_rec_len(de->name_len, NULL),
blocksize);
- strcpy(de->name, "..");
+ strscpy(de->name, "..");
ext4_set_de_type(inode->i_sb, de, S_IFDIR);
return ext4_next_entry(de, blocksize);
---
base-commit: 5723cc3450bccf7f98f227b9723b5c9f6b3af1c5
change-id: 20250518-ext4-strcpy-1545c6f79b51
Best regards,
--
Ethan Carter Edwards <ethan@ethancedwards.com>
On Sun, May 18, 2025 at 12:48:50PM -0400, Ethan Carter Edwards wrote: > strcpy() is deprecated; use strscpy() instead. We never actually needed to use strcpy here, actually, becase de->name is not NUL-terminated. Instead, we have de->name_len which tells us how many characters are in a directory entry's name. So we could just as easily replace: strcpy(de->name, ".") with de->name[0] = '.' and strcpy(de->name, ".") with de->name[0] = de->name[1] = '.' .... if you really want to get rid of the evil strcpy call. As it turns out, it's super easy to assure oneself of why what's currently there is safe, but you really want it to go away for religious reasons then you might as well do it in a more performant way. Also note that there is a similar use of strcpy() in fs/ext4/inline.c. If you really want to "fix" things in fs/ext4/inode.c, you might as well fix it in all of sources files in fs/ext4. Cheeres, - Ted
© 2016 - 2025 Red Hat, Inc.