Message ID | 20240821091337.3627068-1-wintera@linux.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 0124fb0ebf3b0ef89892d42147c9387be3105318 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,v4] s390/iucv: Fix vargs handling in iucv_alloc_device() | expand |
Hello: This patch was applied to netdev/net.git (main) by Jakub Kicinski <kuba@kernel.org>: On Wed, 21 Aug 2024 11:13:37 +0200 you wrote: > iucv_alloc_device() gets a format string and a varying number of > arguments. This is incorrectly forwarded by calling dev_set_name() with > the format string and a va_list, while dev_set_name() expects also a > varying number of arguments. > > Symptoms: > Corrupted iucv device names, which can result in log messages like: > sysfs: cannot create duplicate filename '/devices/iucv/hvc_iucv1827699952' > > [...] Here is the summary with links: - [net,v4] s390/iucv: Fix vargs handling in iucv_alloc_device() https://git.kernel.org/netdev/net/c/0124fb0ebf3b You are awesome, thank you!
diff --git a/net/iucv/iucv.c b/net/iucv/iucv.c index 1e42e13ad24e..d3e9efab7f4b 100644 --- a/net/iucv/iucv.c +++ b/net/iucv/iucv.c @@ -86,13 +86,15 @@ struct device *iucv_alloc_device(const struct attribute_group **attrs, { struct device *dev; va_list vargs; + char buf[20]; int rc; dev = kzalloc(sizeof(*dev), GFP_KERNEL); if (!dev) goto out_error; va_start(vargs, fmt); - rc = dev_set_name(dev, fmt, vargs); + vsnprintf(buf, sizeof(buf), fmt, vargs); + rc = dev_set_name(dev, "%s", buf); va_end(vargs); if (rc) goto out_error;