clk/ti/adpll: allocate room for terminating null
authorStephen Kitt <steve@sk2.org>
Sat, 19 Oct 2019 14:06:34 +0000 (16:06 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 1 Oct 2020 18:40:02 +0000 (20:40 +0200)
[ Upstream commit 7f6ac72946b88b89ee44c1c527aa8591ac5ffcbe ]

The buffer allocated in ti_adpll_clk_get_name doesn't account for the
terminating null. This patch switches to devm_kasprintf to avoid
overflowing.

Signed-off-by: Stephen Kitt <steve@sk2.org>
Link: https://lkml.kernel.org/r/20191019140634.15596-1-steve@sk2.org
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/clk/ti/adpll.c

index 255cafb18336aba5f2e7935daa6825d7e7123012..9345eaf00938ebf191f4ce42b091e4deed71feca 100644 (file)
@@ -193,15 +193,8 @@ static const char *ti_adpll_clk_get_name(struct ti_adpll_data *d,
                if (err)
                        return NULL;
        } else {
-               const char *base_name = "adpll";
-               char *buf;
-
-               buf = devm_kzalloc(d->dev, 8 + 1 + strlen(base_name) + 1 +
-                                   strlen(postfix), GFP_KERNEL);
-               if (!buf)
-                       return NULL;
-               sprintf(buf, "%08lx.%s.%s", d->pa, base_name, postfix);
-               name = buf;
+               name = devm_kasprintf(d->dev, GFP_KERNEL, "%08lx.adpll.%s",
+                                     d->pa, postfix);
        }
 
        return name;