2018-01-08 12:12:24

by Xiongfeng Wang

[permalink] [raw]
Subject: [PATCH] fs/hfsplus: use memcpy() instead of strncpy()

From: Xiongfeng Wang <[email protected]>

gcc-8 reports

inlined from 'copy_name' at fs/hfsplus/xattr.c:416:3:
./include/linux/string.h:245:9: warning: '__builtin_strncpy' output
truncated before terminating nul copying 4 bytes from a string of the
same length [-Wstringop-truncation]

Since we don't need to copy '\0', we can just use memcpy() to avoid this
warning.

Signed-off-by: Xiongfeng Wang <[email protected]>
---
fs/hfsplus/xattr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/hfsplus/xattr.c b/fs/hfsplus/xattr.c
index e538b75..0dc8a65 100644
--- a/fs/hfsplus/xattr.c
+++ b/fs/hfsplus/xattr.c
@@ -413,7 +413,7 @@ static int copy_name(char *buffer, const char *xattr_name, int name_len)
int offset = 0;

if (!is_known_namespace(xattr_name)) {
- strncpy(buffer, XATTR_MAC_OSX_PREFIX, XATTR_MAC_OSX_PREFIX_LEN);
+ memcpy(buffer, XATTR_MAC_OSX_PREFIX, XATTR_MAC_OSX_PREFIX_LEN);
offset += XATTR_MAC_OSX_PREFIX_LEN;
len += XATTR_MAC_OSX_PREFIX_LEN;
}
--
1.8.3.1


2018-01-08 17:56:31

by Viacheslav Dubeyko

[permalink] [raw]
Subject: Re: [PATCH] fs/hfsplus: use memcpy() instead of strncpy()

On Mon, 2018-01-08 at 20:17 +0800, Xiongfeng Wang wrote:
> From: Xiongfeng Wang <[email protected]>
>
> gcc-8 reports
>
> inlined from 'copy_name' at fs/hfsplus/xattr.c:416:3:
> ./include/linux/string.h:245:9: warning: '__builtin_strncpy' output
> truncated before terminating nul copying 4 bytes from a string of the
> same length [-Wstringop-truncation]
>
> Since we don't need to copy '\0', we can just use memcpy() to avoid
> this
> warning.
>

If the gcc-8 emits the warning then the suggested change makes sense.
Looks good.

Reviewed-by: Vyacheslav Dubeyko <[email protected]>

Thanks,
Vyacheslav Dubeyko.


> Signed-off-by: Xiongfeng Wang <[email protected]>
> ---
>  fs/hfsplus/xattr.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/hfsplus/xattr.c b/fs/hfsplus/xattr.c
> index e538b75..0dc8a65 100644
> --- a/fs/hfsplus/xattr.c
> +++ b/fs/hfsplus/xattr.c
> @@ -413,7 +413,7 @@ static int copy_name(char *buffer, const char
> *xattr_name, int name_len)
>   int offset = 0;
>  
>   if (!is_known_namespace(xattr_name)) {
> - strncpy(buffer, XATTR_MAC_OSX_PREFIX,
> XATTR_MAC_OSX_PREFIX_LEN);
> + memcpy(buffer, XATTR_MAC_OSX_PREFIX,
> XATTR_MAC_OSX_PREFIX_LEN);
>   offset += XATTR_MAC_OSX_PREFIX_LEN;
>   len += XATTR_MAC_OSX_PREFIX_LEN;
>   }