[PATCH v1] media: atomisp: ov2722: Return after failed pad initialization
From: Punnay Sharma
Date: Tue Sep 15 2026 - 10:45:02 EST
If media_entity_pads_init() fails, ov2722_probe() calls
ov2722_remove(), which frees the device structure. The probe then
continues into atomisp_register_i2c_module() with a pointer to the
freed subdevice, causing a use-after-free.
Return the original error immediately after cleanup to prevent
registration from accessing the freed device.
Signed-off-by: Punnay Sharma <punnaysharma805@xxxxxxxxx>
---
drivers/staging/media/atomisp/i2c/atomisp-ov2722.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/staging/media/atomisp/i2c/atomisp-ov2722.c b/drivers/staging/media/atomisp/i2c/atomisp-ov2722.c
index 2c41c496daa6..0748247ca42c 100644
--- a/drivers/staging/media/atomisp/i2c/atomisp-ov2722.c
+++ b/drivers/staging/media/atomisp/i2c/atomisp-ov2722.c
@@ -979,8 +979,10 @@ static int ov2722_probe(struct i2c_client *client)
dev->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;
ret = media_entity_pads_init(&dev->sd.entity, 1, &dev->pad);
- if (ret)
+ if (ret) {
ov2722_remove(client);
+ return ret;
+ }
return atomisp_register_i2c_module(&dev->sd, ovpdev);
--
2.55.0