[PATCH 2/5] media: rc: Prevent overflow in ir_raw_event_store_edge()
From: Sean Young
Date: Sun Oct 25 2026 - 14:14:34 EST
The value overflows every ~72 minutes. In between button presses,
this could result in a bogus duration which would prevent decode.
Signed-off-by: Sean Young <sean@xxxxxxxx>
---
drivers/media/rc/rc-ir-raw.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/media/rc/rc-ir-raw.c b/drivers/media/rc/rc-ir-raw.c
index 75dee4a483d4..a79fc89f0dc4 100644
--- a/drivers/media/rc/rc-ir-raw.c
+++ b/drivers/media/rc/rc-ir-raw.c
@@ -101,7 +101,8 @@ int ir_raw_event_store_edge(struct rc_dev *dev, bool pulse)
struct ir_raw_event ev = {};
now = ktime_get();
- ev.duration = ktime_to_us(ktime_sub(now, dev->raw->last_event));
+ ev.duration = min_t(u64, U32_MAX,
+ ktime_to_us(ktime_sub(now, dev->raw->last_event)));
ev.pulse = !pulse;
return ir_raw_event_store_with_timeout(dev, &ev);
--
2.56.0