mirror of https://gitee.com/openkylin/linux.git
usb: gadget: udc: gr_udc: fix memleak on error handling path in gr_ep_init()
gr_ep_init() does not assign the allocated request anywhere if allocation of memory for the buffer fails. This is a memory leak fixed by the given patch. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Evgeny Novikov <novikov@ispras.ru> Signed-off-by: Felipe Balbi <balbi@kernel.org>
This commit is contained in:
parent
4a0f5a7f2b
commit
c8f8529e2c
|
@ -1980,9 +1980,12 @@ static int gr_ep_init(struct gr_udc *dev, int num, int is_in, u32 maxplimit)
|
|||
|
||||
if (num == 0) {
|
||||
_req = gr_alloc_request(&ep->ep, GFP_ATOMIC);
|
||||
if (!_req)
|
||||
return -ENOMEM;
|
||||
|
||||
buf = devm_kzalloc(dev->dev, PAGE_SIZE, GFP_DMA | GFP_ATOMIC);
|
||||
if (!_req || !buf) {
|
||||
/* possible _req freed by gr_probe via gr_remove */
|
||||
if (!buf) {
|
||||
gr_free_request(&ep->ep, _req);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue