2018-01-09 11:53:09

by Xiongfeng Wang

[permalink] [raw]
Subject: [PATCH] caif_usb: use strlcpy() instead of strncpy()

From: Xiongfeng Wang <[email protected]>

gcc-8 reports

net/caif/caif_usb.c: In function 'cfusbl_device_notify':
./include/linux/string.h:245:9: warning: '__builtin_strncpy' output may
be truncated copying 15 bytes from a string of length 15
[-Wstringop-truncation]

The compiler require that the input param 'len' of strncpy() should be
greater than the length of the src string, so that '\0' is copied as
well. We can just use strlcpy() to avoid this warning.

Signed-off-by: Xiongfeng Wang <[email protected]>
---
net/caif/caif_usb.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/net/caif/caif_usb.c b/net/caif/caif_usb.c
index 5cd44f0..1a082a9 100644
--- a/net/caif/caif_usb.c
+++ b/net/caif/caif_usb.c
@@ -176,9 +176,7 @@ static int cfusbl_device_notify(struct notifier_block *me, unsigned long what,
dev_add_pack(&caif_usb_type);
pack_added = true;

- strncpy(layer->name, dev->name,
- sizeof(layer->name) - 1);
- layer->name[sizeof(layer->name) - 1] = 0;
+ strlcpy(layer->name, dev->name, sizeof(layer->name));

return 0;
}
--
1.8.3.1


2018-01-10 20:06:31

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] caif_usb: use strlcpy() instead of strncpy()

From: Xiongfeng Wang <[email protected]>
Date: Tue, 9 Jan 2018 19:58:18 +0800

> From: Xiongfeng Wang <[email protected]>
>
> gcc-8 reports
>
> net/caif/caif_usb.c: In function 'cfusbl_device_notify':
> ./include/linux/string.h:245:9: warning: '__builtin_strncpy' output may
> be truncated copying 15 bytes from a string of length 15
> [-Wstringop-truncation]
>
> The compiler require that the input param 'len' of strncpy() should be
> greater than the length of the src string, so that '\0' is copied as
> well. We can just use strlcpy() to avoid this warning.
>
> Signed-off-by: Xiongfeng Wang <[email protected]>

Applied.