On Tue, Oct 10, 2023 at 2:22 PM Jesse Brandeburg <jesse.brandeb...@intel.com> wrote: > > On 10/10/2023 2:15 PM, Justin Stitt wrote: > > `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: > > | if (q_vector->rx.ring && q_vector->tx.ring) > > | sprintf(q_vector->name, "%s-TxRx-%u", netdev->name, > > > > Furthermore, we do not need NUL-padding as netdev is already > > zero-allocated: > > | netdev = alloc_etherdev_mq(sizeof(struct igc_adapter), > > | IGC_MAX_TX_QUEUES); > > ... > > alloc_etherdev() -> alloc_etherdev_mq() -> alloc_etherdev_mqs() -> > > alloc_netdev_mqs() ... > > | p = kvzalloc(alloc_size, GFP_KERNEL_ACCOUNT | __GFP_RETRY_MAYFAIL); > > > > 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. > > > > Let's also opt for the more idiomatic strscpy usage of (dest, src, > > sizeof(dest)) instead of (dest, src, SOME_LEN). > > > > > Please see my comments on the igbvf patch.
Ah, I sent too many before checking back in. I see your comments now. Responded over there! > > Thanks Justin