| From 1ace396a3ed8767fd26a51a8ca9438f2521d78d2 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 14 Aug 2020 07:55:01 +0200 |
| Subject: usb: gadget: f_tcm: Fix some resource leaks in some error paths |
| |
| From: Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
| |
| [ Upstream commit 07c8434150f4eb0b65cae288721c8af1080fde17 ] |
| |
| If a memory allocation fails within a 'usb_ep_alloc_request()' call, the |
| already allocated memory must be released. |
| |
| Fix a mix-up in the code and free the correct requests. |
| |
| Fixes: c52661d60f63 ("usb-gadget: Initial merge of target module for UASP + BOT") |
| Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
| Signed-off-by: Felipe Balbi <balbi@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/usb/gadget/function/f_tcm.c | 7 ++++--- |
| 1 file changed, 4 insertions(+), 3 deletions(-) |
| |
| diff --git a/drivers/usb/gadget/function/f_tcm.c b/drivers/usb/gadget/function/f_tcm.c |
| index d2351139342f6..7e8e262b36297 100644 |
| --- a/drivers/usb/gadget/function/f_tcm.c |
| +++ b/drivers/usb/gadget/function/f_tcm.c |
| @@ -751,12 +751,13 @@ static int uasp_alloc_stream_res(struct f_uas *fu, struct uas_stream *stream) |
| goto err_sts; |
| |
| return 0; |
| + |
| err_sts: |
| - usb_ep_free_request(fu->ep_status, stream->req_status); |
| - stream->req_status = NULL; |
| -err_out: |
| usb_ep_free_request(fu->ep_out, stream->req_out); |
| stream->req_out = NULL; |
| +err_out: |
| + usb_ep_free_request(fu->ep_in, stream->req_in); |
| + stream->req_in = NULL; |
| out: |
| return -ENOMEM; |
| } |
| -- |
| 2.25.1 |
| |