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
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]>