net: liquidio: replace deprecated strncpy with strscpy_pad
authorJustin Stitt <justinstitt@google.com>
Thu, 5 Oct 2023 21:41:01 +0000 (21:41 +0000)
committerJakub Kicinski <kuba@kernel.org>
Tue, 10 Oct 2023 02:38:47 +0000 (19:38 -0700)
commit092b0be650325b3db490b48182ae23dba0b5755c
treebf2af35ba9406f7a174b47de0e3f6df601b6d1ed
parent52cdbea1a54aba106e6c616c0500a12a965ecbbe
net: liquidio: replace deprecated strncpy with strscpy_pad

`strncpy` is deprecated for use on NUL-terminated destination strings
[1] and as such we should prefer more robust and less ambiguous string
interfaces.

We know `fw_type` must be NUL-terminated based on use here:
|       static bool fw_type_is_auto(void)
|       {
|        return strncmp(fw_type, LIO_FW_NAME_TYPE_AUTO,
|               sizeof(LIO_FW_NAME_TYPE_AUTO)) == 0;
|       }
...and here
|       module_param_string(fw_type, fw_type, sizeof(fw_type), 0444);

Let's opt to NUL-pad the destination buffer as well so that we maintain
the same exact behavior that `strncpy` provided here.

A suitable replacement is `strscpy_pad` due to the fact that it
guarantees both NUL-termination and NUL-padding on the destination
buffer.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strncpy-on-nul-terminated-strings
Link: https://github.com/KSPP/linux/issues/90
Signed-off-by: Justin Stitt <justinstitt@google.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20231005-strncpy-drivers-net-ethernet-cavium-liquidio-lio_main-c-v1-1-663e3f1d8f99@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/cavium/liquidio/lio_main.c