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 <wangxidong_97@xxxxxxx> --- 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; } -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html