]> git.ipfire.org Git - thirdparty/linux.git/commit
can: etas_es58x: allow partial RX URB allocation to succeed
authorSzymon Wilczek <swilczek.lx@gmail.com>
Tue, 23 Dec 2025 01:17:32 +0000 (02:17 +0100)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Fri, 9 Jan 2026 09:30:23 +0000 (10:30 +0100)
commitb1979778e98569c1e78c2c7f16bb24d76541ab00
treec0c66070faf337dcdf8b5e3f1f696f921d3a1492
parent872ac785e7680dac9ec7f8c5ccd4f667f49d6997
can: etas_es58x: allow partial RX URB allocation to succeed

When es58x_alloc_rx_urbs() fails to allocate the requested number of
URBs but succeeds in allocating some, it returns an error code.
This causes es58x_open() to return early, skipping the cleanup label
'free_urbs', which leads to the anchored URBs being leaked.

As pointed out by maintainer Vincent Mailhol, the driver is designed
to handle partial URB allocation gracefully. Therefore, partial
allocation should not be treated as a fatal error.

Modify es58x_alloc_rx_urbs() to return 0 if at least one URB has been
allocated, restoring the intended behavior and preventing the leak
in es58x_open().

Fixes: 8537257874e9 ("can: etas_es58x: add core support for ETAS ES58X CAN USB interfaces")
Reported-by: syzbot+e8cb6691a7cf68256cb8@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=e8cb6691a7cf68256cb8
Signed-off-by: Szymon Wilczek <swilczek.lx@gmail.com>
Reviewed-by: Vincent Mailhol <mailhol@kernel.org>
Link: https://patch.msgid.link/20251223011732.39361-1-swilczek.lx@gmail.com
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/usb/etas_es58x/es58x_core.c