On 05/09/2018 04:02 AM, Shaikh, Shahed wrote:
-----Original Message-----
From: dev <dev-boun...@dpdk.org> On Behalf Of Bruce Richardson
Sent: Tuesday, May 8, 2018 2:53 PM
To: dev-boun...@dpdk.org
Cc: Andy Green <a...@warmcat.com>; dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH 09/18] drivers: net: qede: fix strncpy constant
and NUL
On Tue, May 08, 2018 at 05:59:47PM +0000, dev-boun...@dpdk.org wrote:
-----Original Message-----
From: dev <dev-boun...@dpdk.org> On Behalf Of Andy Green
Sent: Monday, May 7, 2018 11:30 PM
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH 09/18] drivers: net: qede: fix strncpy
constant and NUL
---
drivers/net/qede/base/ecore_int.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/net/qede/base/ecore_int.c
b/drivers/net/qede/base/ecore_int.c
index f43781ba4..c809d84ef 100644
--- a/drivers/net/qede/base/ecore_int.c
+++ b/drivers/net/qede/base/ecore_int.c
@@ -1103,10 +1103,12 @@ static enum _ecore_status_t
ecore_int_deassertion(struct ecore_hwfn *p_hwfn,
OSAL_SNPRINTF(bit_name, 30,
p_aeu->bit_name,
num);
- else
- OSAL_STRNCPY(bit_name,
- p_aeu->bit_name,
- 30);
+ else {
+ strncpy(bit_name,
+ p_aeu->bit_name,
+ sizeof(bit_name) - 1);
+ bit_name[sizeof(bit_name) - 1]
= '\0';
+ }
I think you can retain OSAL_STRNCPY and just replace 30 with
'bit_name[sizeof(bit_name) - 1' and then set last byte with '\0' just like you
did.
Can that actually be fixed inside OSAL_STRNCPY itself, rather than having each
use needing to explicitly null-terminate?
Although there is only instance of OSAL_STRNCPY, it makes sense to modify it.
Doesn't it make more sense to get rid of OSAL_* that bring nothing at
all to the party?
#define OSAL_SPRINTF(name, pattern, ...) \
sprintf(name, pattern, ##__VA_ARGS__)
#define OSAL_SNPRINTF(buf, size, format, ...) \
snprintf(buf, size, format, ##__VA_ARGS__)
#define OSAL_STRLEN(string) strlen(string)
#define OSAL_STRCPY(dst, string) strcpy(dst, string)
#define OSAL_STRNCPY(dst, string, len) strncpy(dst, string, len)
#define OSAL_STRCMP(str1, str2) strcmp(str1, str2)
Do I miss the point or these are just cruft?
-Andy
Thanks,
Shahed