]> git.hungrycats.org Git - linux/commitdiff
staging: vchiq_arm: Use devm_kzalloc() for vchiq_arm_state allocation
authorUmang Jain <umang.jain@ideasonboard.com>
Wed, 16 Oct 2024 13:02:24 +0000 (18:32 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 22 Nov 2024 14:37:32 +0000 (15:37 +0100)
[ Upstream commit 404b739e895522838f1abdc340c554654d671dde ]

The struct vchiq_arm_state 'platform_state' is currently allocated
dynamically using kzalloc(). Unfortunately, it is never freed and is
subjected to memory leaks in the error handling paths of the probe()
function.

To address the issue, use device resource management helper
devm_kzalloc(), to ensure cleanup after its allocation.

Fixes: 71bad7f08641 ("staging: add bcm2708 vchiq driver")
Cc: stable@vger.kernel.org
Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://lore.kernel.org/r/20241016130225.61024-2-umang.jain@ideasonboard.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c

index bb1342223ad0d70af74da024a4345839b3f4fa32..456a9508fb911e5b5722719d57cf6b9197f953ee 100644 (file)
@@ -571,7 +571,7 @@ vchiq_platform_init_state(struct vchiq_state *state)
 {
        struct vchiq_arm_state *platform_state;
 
-       platform_state = kzalloc(sizeof(*platform_state), GFP_KERNEL);
+       platform_state = devm_kzalloc(state->dev, sizeof(*platform_state), GFP_KERNEL);
        if (!platform_state)
                return -ENOMEM;