| From 308bb163d7b292ba19a40f3320ed7abc5cf1dca6 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 2 Mar 2022 11:37:16 +0800 |
| Subject: USB: host: isp116x: check return value after calling |
| platform_get_resource() |
| |
| From: Zhen Ni <nizhen@uniontech.com> |
| |
| [ Upstream commit 134a3408c2d3f7e23eb0e4556e0a2d9f36c2614e ] |
| |
| It will cause null-ptr-deref if platform_get_resource() returns NULL, |
| we need check the return value. |
| |
| Signed-off-by: Zhen Ni <nizhen@uniontech.com> |
| Link: https://lore.kernel.org/r/20220302033716.31272-1-nizhen@uniontech.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/usb/host/isp116x-hcd.c | 6 ++++-- |
| 1 file changed, 4 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/usb/host/isp116x-hcd.c b/drivers/usb/host/isp116x-hcd.c |
| index d089b3fb7a13..c32145e63aea 100644 |
| --- a/drivers/usb/host/isp116x-hcd.c |
| +++ b/drivers/usb/host/isp116x-hcd.c |
| @@ -1551,10 +1551,12 @@ static int isp116x_remove(struct platform_device *pdev) |
| |
| iounmap(isp116x->data_reg); |
| res = platform_get_resource(pdev, IORESOURCE_MEM, 1); |
| - release_mem_region(res->start, 2); |
| + if (res) |
| + release_mem_region(res->start, 2); |
| iounmap(isp116x->addr_reg); |
| res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| - release_mem_region(res->start, 2); |
| + if (res) |
| + release_mem_region(res->start, 2); |
| |
| usb_put_hcd(hcd); |
| return 0; |
| -- |
| 2.35.1 |
| |