]> git.baikalelectronics.ru Git - kernel.git/commitdiff
driver: soc: xilinx: fix memory leak in xlnx_add_cb_for_notify_event()
authorGaosheng Cui <cuigaosheng1@huawei.com>
Tue, 29 Nov 2022 01:01:46 +0000 (09:01 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 11 Mar 2023 12:55:16 +0000 (13:55 +0100)
[ Upstream commit d7f9a187510311de3d94a152f1bdd060d7463bba ]

The kfree() should be called when memory fails to be allocated for
cb_data in xlnx_add_cb_for_notify_event(), otherwise there will be
a memory leak, so add kfree() to fix it.

Fixes: f6d7f9dd133e ("driver: soc: xilinx: Add support of multiple callbacks for same event in event management driver")
Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
Acked-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20221129010146.1026685-1-cuigaosheng1@huawei.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/soc/xilinx/xlnx_event_manager.c

index 2de082765befa7525e0156dbf5d96c9c8790f9ea..c76381899ef4992021a081767207fe0309b7d77a 100644 (file)
@@ -116,8 +116,10 @@ static int xlnx_add_cb_for_notify_event(const u32 node_id, const u32 event, cons
                INIT_LIST_HEAD(&eve_data->cb_list_head);
 
                cb_data = kmalloc(sizeof(*cb_data), GFP_KERNEL);
-               if (!cb_data)
+               if (!cb_data) {
+                       kfree(eve_data);
                        return -ENOMEM;
+               }
                cb_data->eve_cb = cb_fun;
                cb_data->agent_data = data;