From 6b0fcfc387618f35117f3b23685e93bb7c955633 Mon Sep 17 00:00:00 2001 From: Gen Zhang Date: Sun, 9 Jun 2019 15:49:21 +0800 Subject: [PATCH] clk-sunxi: fix a missing-check bug in sunxi_divs_clk_setup() mainline inclusion from mainline-v5.3 commit fcdf445ff42f036d22178b49cf64e92d527c1330 category: bugfix bugzilla: 13690 CVE: CVE-2019-12455 ------------------------------------------------- In sunxi_divs_clk_setup(), 'derived_name' is allocated by kstrndup(). It returns NULL when fails. 'derived_name' should be checked. Signed-off-by: Gen Zhang Signed-off-by: Maxime Ripard Signed-off-by: Yang Yingliang Reviewed-by: Yue Haibing Signed-off-by: Yang Yingliang --- drivers/clk/sunxi/clk-sunxi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c index 012714d94b42..c76ce5524f1d 100644 --- a/drivers/clk/sunxi/clk-sunxi.c +++ b/drivers/clk/sunxi/clk-sunxi.c @@ -988,6 +988,8 @@ static struct clk ** __init sunxi_divs_clk_setup(struct device_node *node, if (endp) { derived_name = kstrndup(clk_name, endp - clk_name, GFP_KERNEL); + if (!derived_name) + return NULL; factors.name = derived_name; } else { factors.name = clk_name; -- GitLab