Re: [PATCH] crypto: hisilicon - fix strncpy warning with strlcpy

From: Zhangfei Gao
Date: Thu Jun 04 2020 - 02:10:53 EST




On 2020/6/4 äå11:39, Herbert Xu wrote:
On Thu, Jun 04, 2020 at 11:32:04AM +0800, Zhangfei Gao wrote:
Use strlcpy to fix the warning
warning: 'strncpy' specified bound 64 equals destination size
[-Wstringop-truncation]

Reported-by: kernel test robot <lkp@xxxxxxxxx>
Signed-off-by: Zhangfei Gao <zhangfei.gao@xxxxxxxxxx>
---
drivers/crypto/hisilicon/qm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/crypto/hisilicon/qm.c b/drivers/crypto/hisilicon/qm.c
index f795fb5..224f3e2 100644
--- a/drivers/crypto/hisilicon/qm.c
+++ b/drivers/crypto/hisilicon/qm.c
@@ -1574,7 +1574,7 @@ static int qm_alloc_uacce(struct hisi_qm *qm)
.ops = &uacce_qm_ops,
};
- strncpy(interface.name, pdev->driver->name, sizeof(interface.name));
+ strlcpy(interface.name, pdev->driver->name, sizeof(interface.name));
Should this even allow truncation? Perhaps it'd be better to fail
in case of an overrun?
I think we do not need consider overrun, since it at most copy size-1 bytes to dest.
From the manual: strlcpy()
 This function is similar to strncpy(), but it copies at most size-1 bytes to dest, always adds a terminating null
ÂÂÂÂÂÂ byte,
And simple tested with smaller SIZE of interface.name, only SIZE-1 is copied, so it is safe.
-#define UACCE_MAX_NAME_SIZEÂÂÂ 64
+#define UACCE_MAX_NAME_SIZEÂÂÂ 4

Thanks