of: unittest: fix memory leak in unittest_data_add
authorNavid Emamdoost <navid.emamdoost@gmail.com>
Fri, 4 Oct 2019 18:58:43 +0000 (13:58 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 10 Nov 2019 10:21:09 +0000 (11:21 +0100)
[ Upstream commit e13de8fe0d6a51341671bbe384826d527afe8d44 ]

In unittest_data_add, a copy buffer is created via kmemdup. This buffer
is leaked if of_fdt_unflatten_tree fails. The release for the
unittest_data buffer is added.

Fixes: b951f9dc7f25 ("Enabling OF selftest to run without machine's devicetree")
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
Reviewed-by: Frank Rowand <frowand.list@gmail.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/of/unittest.c

index 2eac3df7dd2906e610493ccde0db52b66d9b500d..af9e4785b7a6eca1030fb231cf5145af174041f1 100644 (file)
@@ -924,6 +924,7 @@ static int __init unittest_data_add(void)
        of_fdt_unflatten_tree(unittest_data, &unittest_data_node);
        if (!unittest_data_node) {
                pr_warn("%s: No tree to attach; not running tests\n", __func__);
+               kfree(unittest_data);
                return -ENODATA;
        }
        of_node_set_flag(unittest_data_node, OF_DETACHED);