2018-01-08 11:46:15

by Xiongfeng Wang

[permalink] [raw]
Subject: [PATCH] btrfs: use correct string length

From: Xiongfeng Wang <[email protected]>

gcc-8 reports

fs/btrfs/ioctl.c: In function 'btrfs_ioctl':
./include/linux/string.h:245:9: warning: '__builtin_strncpy' specified
bound 1024 equals destination size [-Wstringop-truncation]

We need one less byte or call strlcpy() to make it a nul-terminated
string.

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

diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 2ef8aca..e88c9e8 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -2807,7 +2807,7 @@ static long btrfs_ioctl_dev_info(struct btrfs_fs_info *fs_info,

rcu_read_lock();
name = rcu_dereference(dev->name);
- strncpy(di_args->path, name->str, sizeof(di_args->path));
+ strncpy(di_args->path, name->str, sizeof(di_args->path) - 1);
rcu_read_unlock();
di_args->path[sizeof(di_args->path) - 1] = 0;
} else {
--
1.8.3.1


2018-01-09 17:38:31

by David Sterba

[permalink] [raw]
Subject: Re: [PATCH] btrfs: use correct string length

On Mon, Jan 08, 2018 at 07:51:22PM +0800, Xiongfeng Wang wrote:
> From: Xiongfeng Wang <[email protected]>
>
> gcc-8 reports
>
> fs/btrfs/ioctl.c: In function 'btrfs_ioctl':
> ./include/linux/string.h:245:9: warning: '__builtin_strncpy' specified
> bound 1024 equals destination size [-Wstringop-truncation]
>
> We need one less byte or call strlcpy() to make it a nul-terminated
> string.

The null termination is on the following line, so this patch fixes
namely the gcc warning:

> - strncpy(di_args->path, name->str, sizeof(di_args->path));
> + strncpy(di_args->path, name->str, sizeof(di_args->path) - 1);
> rcu_read_unlock();
> di_args->path[sizeof(di_args->path) - 1] = 0;

Reviewed-by: David Sterba <[email protected]>