On Sat Jun 6, 2026 at 10:25 PM CEST, david.laight.linux wrote:
> diff --git a/drivers/base/platform.c b/drivers/base/platform.c
> index 75b4698d0e58..63fdfffe1a8c 100644
> --- a/drivers/base/platform.c
> +++ b/drivers/base/platform.c
> @@ -617,10 +617,11 @@ static void platform_device_release(struct device *dev)
> struct platform_device *platform_device_alloc(const char *name, int id)
> {
> struct platform_object *pa;
> + size_t len = strlen(name);
This could be strlen(name) + 1 right away, which would also avoid the memcpy()
to implicitly rely on kzalloc() zeroing the memory, where strcpy() was
self-contained before.
>
> - pa = kzalloc(sizeof(*pa) + strlen(name) + 1, GFP_KERNEL);
> + pa = kzalloc(sizeof(*pa) + len + 1, GFP_KERNEL);
> if (pa) {
> - strcpy(pa->name, name);
> + memcpy(pa->name, name, len);
But in general, what's the improvement? strlen() still operates on a potentially
unbounded string?
It removes the redundant strlen() calculation that is implied by the current
code, though this may be eliminated by CSE optimization.