Messages in this thread Patch in this message | | | Date | Thu, 12 Oct 2023 21:05:40 +0000 | Subject | [PATCH] net: netcp: replace deprecated strncpy with strscpy | From | Justin Stitt <> |
| |
strncpy() is deprecated for use on NUL-terminated destination strings [1] and as such we should prefer more robust and less ambiguous string interfaces.
Considering the above, a suitable replacement is `strscpy` [2] due to the fact that it guarantees NUL-termination on the destination buffer without unnecessarily NUL-padding.
Other implementations of .*get_drvinfo also use strscpy so this patch brings keystone_get_drvinfo() in line as well:
igb/igb_ethtool.c +851 static void igb_get_drvinfo(struct net_device *netdev,
igbvf/ethtool.c 167:static void igbvf_get_drvinfo(struct net_device *netdev,
i40e/i40e_ethtool.c 1999:static void i40e_get_drvinfo(struct net_device *netdev,
e1000/e1000_ethtool.c 529:static void e1000_get_drvinfo(struct net_device *netdev,
ixgbevf/ethtool.c 211:static void ixgbevf_get_drvinfo(struct net_device *netdev,
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@vger.kernel.org Signed-off-by: Justin Stitt <justinstitt@google.com> --- Note: build-tested only.
Found with: $ rg "strncpy\(" --- drivers/net/ethernet/ti/netcp_ethss.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/ti/netcp_ethss.c b/drivers/net/ethernet/ti/netcp_ethss.c index 2adf82a32bf6..02cb6474f6dc 100644 --- a/drivers/net/ethernet/ti/netcp_ethss.c +++ b/drivers/net/ethernet/ti/netcp_ethss.c @@ -1735,8 +1735,8 @@ static const struct netcp_ethtool_stat xgbe10_et_stats[] = { static void keystone_get_drvinfo(struct net_device *ndev, struct ethtool_drvinfo *info) { - strncpy(info->driver, NETCP_DRIVER_NAME, sizeof(info->driver)); - strncpy(info->version, NETCP_DRIVER_VERSION, sizeof(info->version)); + strscpy(info->driver, NETCP_DRIVER_NAME, sizeof(info->driver)); + strscpy(info->version, NETCP_DRIVER_VERSION, sizeof(info->version)); } static u32 keystone_get_msglevel(struct net_device *ndev) --- base-commit: cbf3a2cb156a2c911d8f38d8247814b4c07f49a2 change-id: 20231012-strncpy-drivers-net-ethernet-ti-netcp_ethss-c-305a53873cfc Best regards, -- Justin Stitt <justinstitt@google.com>
| |