Skip to content
/ linux Public
forked from torvalds/linux

Commit

Permalink
init: replace deprecated strncpy with strscpy_pad
Browse files Browse the repository at this point in the history
strncpy() is deprecated for use on NUL-terminated destination strings
[1] and as such we should prefer more robust and less ambiguous string
interfaces.

data_page wants to be NUL-terminated and NUL-padded, use strscpy_pad to
provide both of these. data_page no longer awkwardly relies on
init_mount to perform its NUL-termination, although that sanity check is
left unchanged.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strncpy-on-nul-terminated-strings [1]
Link: https://manpages.debian.org/testing/linux-manual-4.8/strscpy.9.en.html [2]
Link: KSPP#90
Cc:  <[email protected]>
Signed-off-by: Justin Stitt <[email protected]>
Reviewed-by: Kees Cook <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Kees Cook <[email protected]>
  • Loading branch information
JustinStitt authored and kees committed Apr 30, 2024
1 parent 998b180 commit 07f8230
Showing 1 changed file with 1 addition and 2 deletions.
3 changes: 1 addition & 2 deletions init/do_mounts.c
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,7 @@ static int __init do_mount_root(const char *name, const char *fs,
if (!p)
return -ENOMEM;
data_page = page_address(p);
/* zero-pad. init_mount() will make sure it's terminated */
strncpy(data_page, data, PAGE_SIZE);
strscpy_pad(data_page, data, PAGE_SIZE);
}

ret = init_mount(name, "/root", fs, flags, data_page);
Expand Down

0 comments on commit 07f8230

Please sign in to comment.