[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <6941ee68.a70a0220.207337.0020.GAE@google.com>
Date: Tue, 16 Dec 2025 15:42:32 -0800
From: syzbot <syzbot+8dd915c7cb0490fc8c52@...kaller.appspotmail.com>
To: linux-kernel@...r.kernel.org, syzkaller-bugs@...glegroups.com
Subject: Forwarded: Re: [syzbot] [net?] [usb?] memory leak in rtl8150_set_multicast
For archival purposes, forwarding an incoming command email to
linux-kernel@...r.kernel.org, syzkaller-bugs@...glegroups.com.
***
Subject: Re: [syzbot] [net?] [usb?] memory leak in rtl8150_set_multicast
Author: rakagunarto@...il.com
#syz test
async_set_registers() does not free the urb and req on the
usb_submit_urb() call fail path. Fix by freeing both objects.
Reported-by: syzbot+8dd915c7cb0490fc8c52@...kaller.appspotmail.com
Signed-off-by: Raka Gunarto <rakagunarto@...il.com>
---
drivers/net/usb/rtl8150.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/usb/rtl8150.c b/drivers/net/usb/rtl8150.c
index 278e6cb6f4..0f6c700a85 100644
--- a/drivers/net/usb/rtl8150.c
+++ b/drivers/net/usb/rtl8150.c
@@ -211,6 +211,8 @@ static int async_set_registers(rtl8150_t *dev, u16
indx, u16 size, u16 reg)
if (res == -ENODEV)
netif_device_detach(dev->netdev);
dev_err(&dev->udev->dev, "%s failed with %d\n", __func__, res);
+ usb_free_urb(async_urb);
+ kfree(req);
}
return res;
}
--
2.25.1
On Tue, Dec 16, 2025 at 11:23 PM Raka Gunarto <rakagunarto@...il.com> wrote:
>
> async_set_registers() does not free the urb and req on the
> usb_submit_urb() call fail path. Fix by freeing both objects.
>
> Reported-by: syzbot+8dd915c7cb0490fc8c52@...kaller.appspotmail.com
> Signed-off-by: Raka Gunarto <rakagunarto@...il.com>
> ---
> drivers/net/usb/rtl8150.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/usb/rtl8150.c b/drivers/net/usb/rtl8150.c
> index 278e6cb6f4..0f6c700a85 100644
> --- a/drivers/net/usb/rtl8150.c
> +++ b/drivers/net/usb/rtl8150.c
> @@ -211,6 +211,8 @@ static int async_set_registers(rtl8150_t *dev, u16
> indx, u16 size, u16 reg)
> if (res == -ENODEV)
> netif_device_detach(dev->netdev);
> dev_err(&dev->udev->dev, "%s failed with %d\n", __func__, res);
> + usb_free_urb(async_urb);
> + kfree(req);
> }
> return res;
> }
> --
> 2.25.1
Powered by blists - more mailing lists