]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drivers/base/node: fix double free in register_one_node()
authorDonet Tom <donettom@linux.ibm.com>
Thu, 18 Sep 2025 05:41:44 +0000 (11:11 +0530)
committerAndrew Morton <akpm@linux-foundation.org>
Sun, 28 Sep 2025 18:51:31 +0000 (11:51 -0700)
When device_register() fails in register_node(), it calls
put_device(&node->dev).  This triggers node_device_release(), which calls
kfree(to_node(dev)), thereby freeing the entire node structure.

As a result, when register_node() returns an error, the node memory has
already been freed.  Calling kfree(node) again in register_one_node()
leads to a double free.

This patch removes the redundant kfree(node) from register_one_node() to
prevent the double free.

Link: https://lkml.kernel.org/r/20250918054144.58980-1-donettom@linux.ibm.com
Fixes: 786eb990cfb7 ("drivers/base/node: handle error properly in register_one_node()")
Signed-off-by: Donet Tom <donettom@linux.ibm.com>
Acked-by: David Hildenbrand <david@redhat.com>
Acked-by: Oscar Salvador <osalvador@suse.de>
Cc: Alison Schofield <alison.schofield@intel.com>
Cc: Chris Mason <clm@meta.com>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Hiroyouki Kamezawa <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Joanthan Cameron <Jonathan.Cameron@huawei.com>
Cc: "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>
Cc: Yury Norov (NVIDIA) <yury.norov@gmail.com>
Cc: Zi Yan <ziy@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drivers/base/node.c

index 45d512939c40896ac28b9e0f588bc4977fca6169..67b01d57973774da6ba015adca67f755d4ee1fe7 100644 (file)
@@ -887,7 +887,6 @@ int register_one_node(int nid)
        error = register_node(node_devices[nid], nid);
        if (error) {
                node_devices[nid] = NULL;
-               kfree(node);
                return error;
        }