[PATCH] media: exynos4-is: Free control handler if ISP subdev init fails
Wentao Liang
vulab at iscas.ac.cn
Tue Nov 3 01:46:16 PST 2026
fimc_isp_subdev_create() initializes isp->ctrls.handler and creates a
number of standard controls. If any of them cannot be created,
handler->error is set and the function returns after cleaning up the
media entity only. The control handler still owns the memory allocated
for its buckets and for the controls created before the failure, and
neither fimc_isp_subdev_destroy() nor the caller's cleanup runs on this
error path, so that memory is leaked.
Free the control handler before returning the error.
Fixes: 9a761e436843 ("[media] exynos4-is: Add Exynos4x12 FIMC-IS driver")
Cc: stable at vger.kernel.org
Assisted-by: DeepSeek-V4.1-Flash and OpenAI Codex
Signed-off-by: Wentao Liang <vulab at iscas.ac.cn>
---
drivers/media/platform/samsung/exynos4-is/fimc-isp.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/media/platform/samsung/exynos4-is/fimc-isp.c b/drivers/media/platform/samsung/exynos4-is/fimc-isp.c
index a0a9093081dd..7790541a2a7a 100644
--- a/drivers/media/platform/samsung/exynos4-is/fimc-isp.c
+++ b/drivers/media/platform/samsung/exynos4-is/fimc-isp.c
@@ -761,6 +761,7 @@ int fimc_isp_subdev_create(struct fimc_isp *isp)
if (handler->error) {
media_entity_cleanup(&sd->entity);
+ v4l2_ctrl_handler_free(handler);
return handler->error;
}
--
2.34.1
More information about the linux-arm-kernel
mailing list