Re: [PATCH] ipv6: replace sprintf() with no format specifiers with strscpy()
From: David Laight
Date: Thu Sep 10 2026 - 06:56:18 EST
On Wed, 9 Sep 2026 21:05:52 +0000
Lalit Shankar Chowdhury <lalitshankarch@xxxxxxxxx> wrote:
> Multiple instances of sprintf() have no format specifiers. Replace
> them with strscpy().
>
> Signed-off-by: Lalit Shankar Chowdhury <lalitshankarch@xxxxxxxxx>
> ---
> net/ipv6/ip6_tunnel.c | 2 +-
> net/ipv6/ip6_vti.c | 2 +-
> net/ipv6/ip6mr.c | 2 +-
> 3 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
> index d5ff50a2ac01..ef3a6d931c9e 100644
> --- a/net/ipv6/ip6_tunnel.c
> +++ b/net/ipv6/ip6_tunnel.c
> @@ -294,7 +294,7 @@ static struct ip6_tnl *ip6_tnl_create(struct net *net, struct __ip6_tnl_parm *p)
> goto failed;
> strscpy(name, p->name, IFNAMSIZ);
> } else {
> - sprintf(name, "ip6tnl%%d");
> + strscpy(name, "ip6tnl%d", IFNAMSIZ);
> }
> err = -ENOMEM;
> dev = alloc_netdev(sizeof(*t), name, NET_NAME_UNKNOWN,
That code is silly, there is no need for the copies at all.
Something like:
if (p->name[0] && !dev_valid_name[p->name])
return ERR_PTR(-E2BIG);
dev = alloc_netdev(sizeof(*t), p->name[0] ? p->name : "op6tnl%d",
NET_NAME_UNKNOWN, ip6_tnl_dev_setup);
if (!dev)
return ERR_PTR(-ENOMEM);
David
> diff --git a/net/ipv6/ip6_vti.c b/net/ipv6/ip6_vti.c
> index ab94b3a4ba9c..182a7949d830 100644
> --- a/net/ipv6/ip6_vti.c
> +++ b/net/ipv6/ip6_vti.c
> @@ -210,7 +210,7 @@ static struct ip6_tnl *vti6_tnl_create(struct net *net, struct __ip6_tnl_parm *p
> goto failed;
> strscpy(name, p->name, IFNAMSIZ);
> } else {
> - sprintf(name, "ip6_vti%%d");
> + strscpy(name, "ip6_vti%d", IFNAMSIZ);
> }
>
> dev = alloc_netdev(sizeof(*t), name, NET_NAME_UNKNOWN, vti6_dev_setup);
> diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c
> index 3f2ed9b77deb..20ac8cb87468 100644
> --- a/net/ipv6/ip6mr.c
> +++ b/net/ipv6/ip6mr.c
> @@ -692,7 +692,7 @@ static struct net_device *ip6mr_reg_vif(struct net *net, struct mr_table *mrt)
> char name[IFNAMSIZ];
>
> if (mrt->id == RT6_TABLE_DFLT)
> - sprintf(name, "pim6reg");
> + strscpy(name, "pim6reg", IFNAMSIZ);
> else
> sprintf(name, "pim6reg%u", mrt->id);
>