On Wed, Mar 20, 2024 at 10:48:50PM +0000, Justin Stitt wrote: > strncpy() is deprecated for use on NUL-terminated destination strings > [1] and as such we should prefer more robust and less ambiguous string > interfaces. > > A better alternative is strscpy() as it guarantees NUL-termination on > the destination buffer. > > Since we are eventually copying over to userspace, let's ensure we > NUL-pad the destination buffer by using the pad variant of strscpy. > - core/fb_chrdev.c: > 234 | err = copy_to_user(&fix32->id, &fix->id, sizeof(fix32->id)); > > Furthermore, we can use the new 2-argument variants of strscpy() and > strscpy_pad() introduced by Commit e6584c3964f2f ("string: Allow > 2-argument strscpy()") to simplify the syntax even more. > > 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: https://github.com/KSPP/linux/issues/90 > Cc: linux-hardening@xxxxxxxxxxxxxxx > Signed-off-by: Justin Stitt <justinstitt@xxxxxxxxxx> Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> -- Kees Cook