In the Linux kernel, the following vulnerability has been resolved:
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.