| From 4b24329ec91928e43ede4b3374fdffc9bb8a6023 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 15 Jul 2020 09:59:31 -0400 |
| Subject: ax88172a: fix ax88172a_unbind() failures |
| |
| From: George Kennedy <george.kennedy@oracle.com> |
| |
| [ Upstream commit c28d9a285668c799eeae2f7f93e929a6028a4d6d ] |
| |
| If ax88172a_unbind() fails, make sure that the return code is |
| less than zero so that cleanup is done properly and avoid UAF. |
| |
| Fixes: a9a51bd727d1 ("ax88172a: fix information leak on short answers") |
| Signed-off-by: George Kennedy <george.kennedy@oracle.com> |
| Reported-by: syzbot+4cd84f527bf4a10fc9c1@syzkaller.appspotmail.com |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/usb/ax88172a.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| diff --git a/drivers/net/usb/ax88172a.c b/drivers/net/usb/ax88172a.c |
| index 2c50497cc4edc..7ec8992401fb4 100644 |
| --- a/drivers/net/usb/ax88172a.c |
| +++ b/drivers/net/usb/ax88172a.c |
| @@ -217,6 +217,7 @@ static int ax88172a_bind(struct usbnet *dev, struct usb_interface *intf) |
| ret = asix_read_cmd(dev, AX_CMD_READ_NODE_ID, 0, 0, ETH_ALEN, buf, 0); |
| if (ret < ETH_ALEN) { |
| netdev_err(dev->net, "Failed to read MAC address: %d\n", ret); |
| + ret = -EIO; |
| goto free; |
| } |
| memcpy(dev->net->dev_addr, buf, ETH_ALEN); |
| -- |
| 2.25.1 |
| |