提交 dc85aaed 编写于 作者: A Andy Shevchenko 提交者: Michael Ellerman

powerpc/pseries: fix a potential memory leak

In case we have a full node name like /foo/bar and /foo is not found the
parent_path left unfreed. So, free a memory before return to a caller.
Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
上级 948ad1ac
......@@ -15,7 +15,7 @@
*/
struct device_node *pseries_of_derive_parent(const char *path)
{
struct device_node *parent = NULL;
struct device_node *parent;
char *parent_path = "/";
size_t parent_path_len = strrchr(path, '/') - path + 1;
......@@ -30,9 +30,7 @@ struct device_node *pseries_of_derive_parent(const char *path)
strlcpy(parent_path, path, parent_path_len);
}
parent = of_find_node_by_path(parent_path);
if (!parent)
return ERR_PTR(-EINVAL);
if (strcmp(parent_path, "/"))
kfree(parent_path);
return parent;
return parent ? parent : ERR_PTR(-EINVAL);
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册