liquidio: replace deprecated strncpy/strcpy with strscpy
`strncpy` is deprecated for use on NUL-terminated destination strings [1] and as such we should prefer more robust and less ambiguous string interfaces. NUL-padding is not required as drvinfo is memset to 0: | memset(drvinfo, 0, sizeof(struct ethtool_drvinfo)); A suitable replacement is `strscpy` [2] due to the fact that it guarantees NUL-termination on the destination buffer without unnecessarily NUL-padding. 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 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_ethtool-c-v1-1-ab565ab4d197@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
0aba524728
commit
52cdbea1a5
@@ -442,10 +442,11 @@ lio_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo)
|
||||
oct = lio->oct_dev;
|
||||
|
||||
memset(drvinfo, 0, sizeof(struct ethtool_drvinfo));
|
||||
strcpy(drvinfo->driver, "liquidio");
|
||||
strncpy(drvinfo->fw_version, oct->fw_info.liquidio_firmware_version,
|
||||
ETHTOOL_FWVERS_LEN);
|
||||
strncpy(drvinfo->bus_info, pci_name(oct->pci_dev), 32);
|
||||
strscpy(drvinfo->driver, "liquidio", sizeof(drvinfo->driver));
|
||||
strscpy(drvinfo->fw_version, oct->fw_info.liquidio_firmware_version,
|
||||
sizeof(drvinfo->fw_version));
|
||||
strscpy(drvinfo->bus_info, pci_name(oct->pci_dev),
|
||||
sizeof(drvinfo->bus_info));
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -458,10 +459,11 @@ lio_get_vf_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo)
|
||||
oct = lio->oct_dev;
|
||||
|
||||
memset(drvinfo, 0, sizeof(struct ethtool_drvinfo));
|
||||
strcpy(drvinfo->driver, "liquidio_vf");
|
||||
strncpy(drvinfo->fw_version, oct->fw_info.liquidio_firmware_version,
|
||||
ETHTOOL_FWVERS_LEN);
|
||||
strncpy(drvinfo->bus_info, pci_name(oct->pci_dev), 32);
|
||||
strscpy(drvinfo->driver, "liquidio_vf", sizeof(drvinfo->driver));
|
||||
strscpy(drvinfo->fw_version, oct->fw_info.liquidio_firmware_version,
|
||||
sizeof(drvinfo->fw_version));
|
||||
strscpy(drvinfo->bus_info, pci_name(oct->pci_dev),
|
||||
sizeof(drvinfo->bus_info));
|
||||
}
|
||||
|
||||
static int
|
||||
|
||||
Reference in New Issue
Block a user