diff options
author | Justin Stitt <justinstitt@google.com> | 2023-10-05 01:29:45 +0000 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2023-10-06 15:56:10 -0700 |
commit | 9814ec70fccb78f737cfad25e6e386313ee40233 (patch) | |
tree | 16bba104d051133bf9e9fcbc24822cfc339f2f8b /drivers/net/ethernet/atheros | |
parent | 9c9e3ab20f35b2903a4fd3619229e6df7c7986b3 (diff) |
net: atheros: replace deprecated strncpy 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.
We expect netdev->name to be NUL-terminated based on its use with format
strings and dev_info():
| dev_info(&adapter->pdev->dev,
| "%s link is up %d Mbps %s\n",
| netdev->name, adapter->link_speed,
| adapter->link_duplex == FULL_DUPLEX ?
| "full duplex" : "half duplex");
Furthermore, NUL-padding is not required as netdev is already
zero-initialized through alloc_etherdev().
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.
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-atheros-atlx-atl2-c-v1-1-493f113ebfc7@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ethernet/atheros')
-rw-r--r-- | drivers/net/ethernet/atheros/atlx/atl2.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/atheros/atlx/atl2.c b/drivers/net/ethernet/atheros/atlx/atl2.c index 1b487c071cb6..bcfc9488125b 100644 --- a/drivers/net/ethernet/atheros/atlx/atl2.c +++ b/drivers/net/ethernet/atheros/atlx/atl2.c @@ -1377,7 +1377,7 @@ static int atl2_probe(struct pci_dev *pdev, const struct pci_device_id *ent) netdev->watchdog_timeo = 5 * HZ; netdev->min_mtu = 40; netdev->max_mtu = ETH_DATA_LEN + VLAN_HLEN; - strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1); + strscpy(netdev->name, pci_name(pdev), sizeof(netdev->name)); netdev->mem_start = mmio_start; netdev->mem_end = mmio_start + mmio_len; |