usb: gadget: udc: gr_udc: fix memleak on error handling path in gr_ep_init()
[ Upstream commit c8f8529e2c4141afa2ebb487ad48e8a6ec3e8c99 ] 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> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
9ef026214f
commit
f038d105d0
@ -2000,9 +2000,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…
x
Reference in New Issue
Block a user