]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
power: reset: linkstation-poweroff: fix use-after-free in the linkstation_poweroff_init()
authorWentao Liang <vulab@iscas.ac.cn>
Tue, 7 Apr 2026 07:30:25 +0000 (07:30 +0000)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Wed, 3 Jun 2026 19:58:00 +0000 (21:58 +0200)
Move of_node_put(dn) after the of_match_node() call, which still needs
the node pointer. The node reference is correctly released after use.

Fixes: e2f471efe1d6 ("power: reset: linkstation-poweroff: prepare for new devices")
Cc: stable@vger.kernel.org
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
Link: https://patch.msgid.link/20260407073025.271865-1-vulab@iscas.ac.cn
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/reset/linkstation-poweroff.c

index 02f5fdb8ffc4c0827bfbd0c2efafa9ef4d6d5afb..e56d75bfcc43f2e9e62ed916d1405dd76f63a3f2 100644 (file)
@@ -163,10 +163,10 @@ static int __init linkstation_poweroff_init(void)
        dn = of_find_matching_node(NULL, ls_poweroff_of_match);
        if (!dn)
                return -ENODEV;
-       of_node_put(dn);
 
        match = of_match_node(ls_poweroff_of_match, dn);
        cfg = match->data;
+       of_node_put(dn);
 
        dn = of_find_node_by_name(NULL, cfg->mdio_node_name);
        if (!dn)