x86/tdx: Replace deprecated strncpy() with strtomem_pad()
authorJustin Stitt <justinstitt@google.com>
Tue, 3 Oct 2023 21:54:59 +0000 (21:54 +0000)
committerIngo Molnar <mingo@kernel.org>
Wed, 4 Oct 2023 07:34:07 +0000 (09:34 +0200)
strncpy() works perfectly here in all cases, however, it is deprecated and
as such we should prefer more robust and less ambiguous string APIs:

    https://www.kernel.org/doc/html/latest/process/deprecated.html#strncpy-on-nul-terminated-strings

Let's use strtomem_pad() as this matches the functionality of strncpy()
and is _not_ deprecated.

Signed-off-by: Justin Stitt <justinstitt@google.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
Link: https://github.com/KSPP/linux/issues/90
Link: https://lore.kernel.org/r/20231003-strncpy-arch-x86-coco-tdx-tdx-c-v2-1-0bd21174a217@google.com
arch/x86/coco/tdx/tdx.c

index 1d6b863c42b001c8c28c8bc36bc94b318c9df0d7..2e1be592c220e41e65da70b9524ae3d417fc3aa4 100644 (file)
@@ -119,7 +119,7 @@ static void __noreturn tdx_panic(const char *msg)
        } message;
 
        /* VMM assumes '\0' in byte 65, if the message took all 64 bytes */
-       strncpy(message.str, msg, 64);
+       strtomem_pad(message.str, msg, '\0');
 
        args.r8  = message.r8;
        args.r9  = message.r9;