You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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: a6df95c ("lan78xx: Fix memory allocation bug")
Cc: John Efstathiades <[email protected]>
Signed-off-by: Oleksij Rempel <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Orabug: 37433573
CVE: CVE-2024-53213
(cherry picked from commit 03819ab)
cherry-pick-repo=kernel/git/torvalds/linux.git
Conflicts:
drivers/net/usb/lan78xx.c
A small contextual conflict as UEK7 doesn't have the upstream commit:
e13adbf ("net: remove third argument of usb_maxpacket()")
Signed-off-by: Qing Huang <[email protected]>
Reviewed-by: Harshit Mogalapalli <[email protected]>
Signed-off-by: Vijayendra Suman <[email protected]>
0 commit comments