Browse Source

clk: gpio: fix memory leak

If we fail to allocate parent_name then we are returning but we missed
freeing data which has already been allocated.

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Michael Turquette <mturquette@baylibre.com>
Sudip Mukherjee 9 years ago
parent
commit
c76eb11c8f
1 changed files with 3 additions and 1 deletions
  1. 3 1
      drivers/clk/clk-gpio.c

+ 3 - 1
drivers/clk/clk-gpio.c

@@ -294,8 +294,10 @@ static void __init of_gpio_clk_setup(struct device_node *node,
 	num_parents = of_clk_get_parent_count(node);
 	num_parents = of_clk_get_parent_count(node);
 
 
 	parent_names = kcalloc(num_parents, sizeof(char *), GFP_KERNEL);
 	parent_names = kcalloc(num_parents, sizeof(char *), GFP_KERNEL);
-	if (!parent_names)
+	if (!parent_names) {
+		kfree(data);
 		return;
 		return;
+	}
 
 
 	for (i = 0; i < num_parents; i++)
 	for (i = 0; i < num_parents; i++)
 		parent_names[i] = of_clk_get_parent_name(node, i);
 		parent_names[i] = of_clk_get_parent_name(node, i);