net/ipv4: net: prefer strscpy over strcpy

The deprecated helper strcpy() performs no bounds checking on the
destination buffer. This could result in linear overflows beyond
the end of the buffer, leading to all kinds of misbehaviors.
The safe replacement is strscpy() [1].

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strcpy [1]

Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
Link: https://patch.msgid.link/20240828123224.3697672-7-lihongbo22@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Hongbo Li 2024-08-28 20:32:24 +08:00 committed by Jakub Kicinski
parent af1052fd49
commit 82183b03de
3 changed files with 3 additions and 3 deletions

View File

@ -1326,7 +1326,7 @@ int ip_tunnel_init(struct net_device *dev)
tunnel->dev = dev;
tunnel->net = dev_net(dev);
strcpy(tunnel->parms.name, dev->name);
strscpy(tunnel->parms.name, dev->name);
iph->version = 4;
iph->ihl = 5;

View File

@ -826,7 +826,7 @@ static int get_info(struct net *net, void __user *user, const int *len)
sizeof(info.underflow));
info.num_entries = private->number;
info.size = private->size;
strcpy(info.name, name);
strscpy(info.name, name);
if (copy_to_user(user, &info, *len) != 0)
ret = -EFAULT;

View File

@ -981,7 +981,7 @@ static int get_info(struct net *net, void __user *user, const int *len)
sizeof(info.underflow));
info.num_entries = private->number;
info.size = private->size;
strcpy(info.name, name);
strscpy(info.name, name);
if (copy_to_user(user, &info, *len) != 0)
ret = -EFAULT;