[PATCH v2 02/11] media: redrat3: Ensure rc device is freed if enable_detector() fails

From: Sean Young

Date: Mon Jul 13 2026 - 17:33:05 EST


This particular error path does not free the rc device at all, with
its priv pointer still pointing at freed memory.

Fixes: 2154be651b90 ("[media] redrat3: new rc-core IR transceiver device driver")
Signed-off-by: Sean Young <sean@xxxxxxxx>
---
drivers/media/rc/redrat3.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/media/rc/redrat3.c b/drivers/media/rc/redrat3.c
index 3f828a564e19..391d01143491 100644
--- a/drivers/media/rc/redrat3.c
+++ b/drivers/media/rc/redrat3.c
@@ -1111,17 +1111,20 @@ static int redrat3_dev_probe(struct usb_interface *intf,
/* might be all we need to do? */
retval = redrat3_enable_detector(rr3);
if (retval < 0)
- goto led_free;
+ goto rc_free;

/* we can register the device now, as it is ready */
usb_set_intfdata(intf, rr3);

return 0;

+rc_free:
+ rc_unregister_device(rr3->rc);
led_free:
led_classdev_unregister(&rr3->led);
redrat_free:
redrat3_delete(rr3, rr3->udev);
+ rc_free_device(rr3->rc);

no_endpoints:
return retval;
--
2.55.0