]> www.infradead.org Git - users/dwmw2/linux.git/commit
net: usb: lan78xx: Fix double free issue with interrupt buffer allocation
authorOleksij Rempel <o.rempel@pengutronix.de>
Sat, 16 Nov 2024 13:05:57 +0000 (14:05 +0100)
committerJakub Kicinski <kuba@kernel.org>
Mon, 25 Nov 2024 00:28:57 +0000 (16:28 -0800)
commit03819abbeb11117dcbba40bfe322b88c0c88a6b6
tree3cdd14b0c71e120736ce84a0aeabaa93b3e9bee0
parentf26a29a038ee3982099e867bec2260576a19720f
net: usb: lan78xx: Fix double free issue with interrupt buffer allocation

In lan78xx_probe(), the buffer `buf` was being freed twice: once
implicitly through `usb_free_urb(dev->urb_intr)` with the
`URB_FREE_BUFFER` flag and again explicitly by `kfree(buf)`. This caused
a double free issue.

To resolve this, reordered `kmalloc()` and `usb_alloc_urb()` calls to
simplify the initialization sequence and removed the redundant
`kfree(buf)`.  Now, `buf` is allocated after `usb_alloc_urb()`, ensuring
it is correctly managed by  `usb_fill_int_urb()` and freed by
`usb_free_urb()` as intended.

Fixes: a6df95cae40b ("lan78xx: Fix memory allocation bug")
Cc: John Efstathiades <john.efstathiades@pebblebay.com>
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Link: https://patch.msgid.link/20241116130558.1352230-1-o.rempel@pengutronix.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/usb/lan78xx.c