usb: gadget: f_tcm: Fix some resource leaks in some error paths
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Fri, 14 Aug 2020 05:55:01 +0000 (07:55 +0200)
committerFelipe Balbi <balbi@kernel.org>
Mon, 17 Aug 2020 10:35:22 +0000 (13:35 +0300)
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>
drivers/usb/gadget/function/f_tcm.c

index d94b814..184165e 100644 (file)
@@ -753,12 +753,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;
 }