init/version.c: Replace strlcpy with strscpy
authorAzeem Shaikh <azeemshaikh38@gmail.com>
Wed, 30 Aug 2023 16:08:06 +0000 (16:08 +0000)
committerKees Cook <keescook@chromium.org>
Fri, 22 Sep 2023 16:50:56 +0000 (09:50 -0700)
commit8ebab155ea18a6d6c47b17287a0ab4633334f6eb
treec08b62198e3df102ef467f369d3be074857ead9d
parent215199e3d9f3dc01a6d10b8229891e6f7f1085e7
init/version.c: Replace strlcpy with strscpy

strlcpy() reads the entire source buffer first.
This read may exceed the destination size limit.
This is both inefficient and can lead to linear read
overflows if a source string is not NUL-terminated [1].
In an effort to remove strlcpy() completely [2], replace
strlcpy() here with strscpy().

Direct replacement is safe here since return value of -errno
is used to check for truncation instead of sizeof(dest).

[1] https://www.kernel.org/doc/html/latest/process/deprecated.html#strlcpy
[2] https://github.com/KSPP/linux/issues/89

Signed-off-by: Azeem Shaikh <azeemshaikh38@gmail.com>
Reviewed-by: Justin Stitt <justinstitt@google.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20230830160806.3821893-1-azeemshaikh38@gmail.com
Signed-off-by: Kees Cook <keescook@chromium.org>
init/version.c