2022-05-30 09:48:45

by Miaoqian Lin

[permalink] [raw]
Subject: [PATCH] usb: dwc2: Fix memory leak in dwc2_hcd_init

usb_create_hcd will alloc memory for hcd, and we should
call usb_put_hcd to free it when platform_get_resource()
fails to prevent memory leak.
goto error2 label instead error1 to fix this.

Fixes: 856e6e8e0f93 ("usb: dwc2: check return value after calling
platform_get_resource()")
Signed-off-by: Miaoqian Lin <[email protected]>
---
drivers/usb/dwc2/hcd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c
index f63a27d11fac..3f107a06817d 100644
--- a/drivers/usb/dwc2/hcd.c
+++ b/drivers/usb/dwc2/hcd.c
@@ -5190,7 +5190,7 @@ int dwc2_hcd_init(struct dwc2_hsotg *hsotg)
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) {
retval = -EINVAL;
- goto error1;
+ goto error2;
}
hcd->rsrc_start = res->start;
hcd->rsrc_len = resource_size(res);
--
2.25.1



2022-06-02 21:01:28

by Minas Harutyunyan

[permalink] [raw]
Subject: Re: [PATCH] usb: dwc2: Fix memory leak in dwc2_hcd_init

On 5/30/2022 12:54 PM, Miaoqian Lin wrote:
> usb_create_hcd will alloc memory for hcd, and we should
> call usb_put_hcd to free it when platform_get_resource()
> fails to prevent memory leak.
> goto error2 label instead error1 to fix this.
>
> Fixes: 856e6e8e0f93 ("usb: dwc2: check return value after calling
> platform_get_resource()")
> Signed-off-by: Miaoqian Lin <[email protected]>

Acked-by: Minas Harutyunyan <[email protected]>

> ---
> drivers/usb/dwc2/hcd.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c
> index f63a27d11fac..3f107a06817d 100644
> --- a/drivers/usb/dwc2/hcd.c
> +++ b/drivers/usb/dwc2/hcd.c
> @@ -5190,7 +5190,7 @@ int dwc2_hcd_init(struct dwc2_hsotg *hsotg)
> res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> if (!res) {
> retval = -EINVAL;
> - goto error1;
> + goto error2;
> }
> hcd->rsrc_start = res->start;
> hcd->rsrc_len = resource_size(res);