lkml.org 
[lkml]   [2022]   [Jun]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] psci: Fix refcount leak in psci_dt_init
    Date
    of_find_matching_node_and_match() returns a node pointer with refcount
    incremented, we should use of_node_put() on it when not need anymore.
    When of_device_is_available() fails, call of_node_put() to release the
    refcount. And of_node_put() will checks NULL pointer.

    Fixes: d09a0011ec0d ("drivers: psci: Allow PSCI node to be disabled")
    Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
    ---
    drivers/firmware/psci/psci.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c
    index cfb448eabdaa..ec888aba57ff 100644
    --- a/drivers/firmware/psci/psci.c
    +++ b/drivers/firmware/psci/psci.c
    @@ -619,8 +619,10 @@ int __init psci_dt_init(void)

    np = of_find_matching_node_and_match(NULL, psci_of_match, &matched_np);

    - if (!np || !of_device_is_available(np))
    + if (!np || !of_device_is_available(np)) {
    + of_node_put(np);
    return -ENODEV;
    + }

    init_fn = (psci_initcall_t)matched_np->data;
    ret = init_fn(np);
    --
    2.25.1
    \
     
     \ /
      Last update: 2022-06-01 15:12    [W:4.781 / U:0.232 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site