of: of_node_get()/of_node_put() nodes held in phandle cache
authorFrank Rowand <frank.rowand@sony.com>
Tue, 18 Dec 2018 19:40:02 +0000 (11:40 -0800)
committerRob Herring <robh@kernel.org>
Fri, 21 Dec 2018 18:41:58 +0000 (12:41 -0600)
commitb8a9ac1a5b99a2fcbed19fd29d2d59270c281a31
tree76a98444b47a29c55ba65ba95c32ac542c295431
parent24ad02c48c69c37427cc3412f6597493091eca3c
of: of_node_get()/of_node_put() nodes held in phandle cache

The phandle cache contains struct device_node pointers.  The refcount
of the pointers was not incremented while in the cache, allowing use
after free error after kfree() of the node.  Add the proper increment
and decrement of the use count.

Fixes: 0b3ce78e90fc ("of: cache phandle nodes to reduce cost of of_find_node_by_phandle()")
Cc: stable@vger.kernel.org # v4.17+
Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Signed-off-by: Rob Herring <robh@kernel.org>
drivers/of/base.c