Thread (2 messages) 2 messages, 2 authors, 2018-07-26
STALE2864d

[1/1] usb:gadget:function:fix memory leak

From: Xidong Wang <hidden>
Date: 2018-07-23 11:10:21
Also in: lkml
Subsystem: the rest, usb subsystem · Maintainers: Linus Torvalds, Greg Kroah-Hartman

In function f_audio_set_alt(), the memory allocated by
usb_ep_alloc_request() is not released on the error path
that req->buf, which holds the return value of kzalloc(),
is NULL. This will result in a memory leak bug.

Signed-off-by: Xidong Wang <redacted>
---
 drivers/usb/gadget/function/f_uac1_legacy.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/gadget/function/f_uac1_legacy.c b/drivers/usb/gadget/function/f_uac1_legacy.c
index 24c086b..2fcdade 100644
--- a/drivers/usb/gadget/function/f_uac1_legacy.c
+++ b/drivers/usb/gadget/function/f_uac1_legacy.c
@@ -630,8 +630,11 @@ static int f_audio_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
 							ERROR(cdev,
 							"%s queue req: %d\n",
 							out_ep->name, err);
-					} else
+					} else {
+						usb_ep_free_request(
+							out_ep, req);
 						err = -ENOMEM;
+					}
 				} else
 					err = -ENOMEM;
 			}
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help