On 05/11/2018 06:33 PM, De Lara Guarch, Pablo wrote:
-----Original Message-----
From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Andy Green
Sent: Friday, May 11, 2018 2:46 AM
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH v4 07/18] net/nfp/nfpcore: off-by-one and no NUL
on strncpy use
/home/agreen/projects/dpdk/drivers/net/nfp/nfpcore/nfp_resource.c:
76:2:error: ‘strncpy’ output may be truncated copying 8 bytes from a string of
length 8 [-Werror=stringop-truncation]
strncpy(name_pad, res->name, sizeof(name_pad));
Signed-off-by: Andy Green <a...@warmcat.com>
---
drivers/net/nfp/nfpcore/nfp_resource.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/net/nfp/nfpcore/nfp_resource.c
b/drivers/net/nfp/nfpcore/nfp_resource.c
index e1df2b2e1..dd41fa4de 100644
--- a/drivers/net/nfp/nfpcore/nfp_resource.c
+++ b/drivers/net/nfp/nfpcore/nfp_resource.c
...
- memset(name_pad, 0, NFP_RESOURCE_ENTRY_NAME_SZ);
- strncpy(name_pad, res->name, sizeof(name_pad));
+ memset(name_pad, 0, sizeof(name_pad));
+ strlcpy(name_pad, res->name, sizeof(name_pad));
I think memset is not required, as strlcpy already null terminate the buffer.
It seems required to keep it, because of the exciting code just below it:
/* Search for a matching entry */
if (!memcmp(name_pad, NFP_RESOURCE_TBL_NAME "\0\0\0\0\0\0\0\0",
8)) {
printf("Grabbing device lock not supported\n");
return -EOPNOTSUPP;
}
-Andy
...
Missing fixes line.
Fixes: c7e9729da6b5 ("net/nfp: support CPP")
Acked-by: Pablo de Lara <pablo.de.lara.gua...@intel.com>