Messages in this thread Patch in this message | | | From | alawang <> | Subject | [PATCH] of: dynamic: fix memory leak related to properties of __of_node_dup | Date | Fri, 13 Oct 2017 09:42:47 +0800 |
| |
It is possible a node was dynamically allocated but without any property. The properies will be got from devices and added to the node when devices got connected. When release this node, all properties of which had been moved to deadprops. In this case, the properties in the deadprops list are never deallocated.
Signed-off-by: alawang <alan.1.wang@nokia-sbell.com> --- drivers/of/dynamic.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c index 301b6db..465d43b 100644 --- a/drivers/of/dynamic.c +++ b/drivers/of/dynamic.c @@ -335,6 +335,10 @@ void of_node_release(struct kobject *kobj) if (!of_node_check_flag(node, OF_DYNAMIC)) return; + if (!prop) { + prop = node->deadprops; + node->deadprops = NULL; + } while (prop) { struct property *next = prop->next; kfree(prop->name); -- 2.6.2
| |