Commit 82183b03 authored by Hongbo Li's avatar Hongbo Li Committed by Jakub Kicinski
Browse files

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: default avatarHongbo Li <lihongbo22@huawei.com>
Link: https://patch.msgid.link/20240828123224.3697672-7-lihongbo22@huawei.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent af1052fd
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;

+1 −1
Original line number Diff line number Diff line
@@ -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;
+1 −1
Original line number Diff line number Diff line
@@ -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;