kobject: Replace strlcpy with strscpy
authorAzeem Shaikh <azeemshaikh38@gmail.com>
Thu, 31 Aug 2023 14:01:04 +0000 (14:01 +0000)
committerKees Cook <keescook@chromium.org>
Fri, 22 Sep 2023 16:50:56 +0000 (09:50 -0700)
commit6cd59324c69a8d30956c70a870dcd0cb14977914
treec36371f0246a436f8495eaf8feae2a638327db29
parent8ebab155ea18a6d6c47b17287a0ab4633334f6eb
kobject: 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: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20230831140104.207019-1-azeemshaikh38@gmail.com
Signed-off-by: Kees Cook <keescook@chromium.org>
lib/kobject_uevent.c