]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
can: peak_usb: fix shift-out-of-bounds issue
authorStéphane Grosjean <stephane.grosjean@hms-networks.com>
Thu, 18 Sep 2025 13:23:57 +0000 (15:23 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Oct 2025 11:35:45 +0000 (13:35 +0200)
[ Upstream commit c443be70aaee42c2d1d251e0329e0a69dd96ae54 ]

Explicitly uses a 64-bit constant when the number of bits used for its
shifting is 32 (which is the case for PC CAN FD interfaces supported by
this driver).

Signed-off-by: Stéphane Grosjean <stephane.grosjean@hms-networks.com>
Link: https://patch.msgid.link/20250918132413.30071-1-stephane.grosjean@free.fr
Reported-by: Marc Kleine-Budde <mkl@pengutronix.de>
Closes: https://lore.kernel.org/20250917-aboriginal-refined-honeybee-82b1aa-mkl@pengutronix.de
Fixes: bb4785551f64 ("can: usb: PEAK-System Technik USB adapters driver core")
[mkl: update subject, apply manually]
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/can/usb/peak_usb/pcan_usb_core.c

index 73c1bc3cb70d36fd5b6195901d4552ba9db6e66b..3a963f2a8c4419ef38eeb8483f8228cf4b4f5a9f 100644 (file)
@@ -84,7 +84,7 @@ void peak_usb_update_ts_now(struct peak_time_ref *time_ref, u32 ts_now)
                u32 delta_ts = time_ref->ts_dev_2 - time_ref->ts_dev_1;
 
                if (time_ref->ts_dev_2 < time_ref->ts_dev_1)
-                       delta_ts &= (1 << time_ref->adapter->ts_used_bits) - 1;
+                       delta_ts &= (1ULL << time_ref->adapter->ts_used_bits) - 1;
 
                time_ref->ts_total += delta_ts;
        }