greybus: es2: fix memory leak in probe error path
In case a bulk-in transfer-buffer allocation failed during probe, we'd currently leak the corresponding URB. Signed-off-by: Johan Hovold <johan@hovoldconsulting.com> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Родитель
c9161d72b3
Коммит
5f62eab04a
|
@ -1623,6 +1623,8 @@ static int ap_probe(struct usb_interface *interface,
|
|||
retval = -ENOMEM;
|
||||
goto error;
|
||||
}
|
||||
cport_in->urb[i] = urb;
|
||||
|
||||
buffer = kmalloc(ES2_GBUF_MSG_SIZE_MAX, GFP_KERNEL);
|
||||
if (!buffer) {
|
||||
retval = -ENOMEM;
|
||||
|
@ -1634,7 +1636,7 @@ static int ap_probe(struct usb_interface *interface,
|
|||
cport_in->endpoint),
|
||||
buffer, ES2_GBUF_MSG_SIZE_MAX,
|
||||
cport_in_callback, hd);
|
||||
cport_in->urb[i] = urb;
|
||||
|
||||
cport_in->buffer[i] = buffer;
|
||||
}
|
||||
}
|
||||
|
@ -1649,6 +1651,8 @@ static int ap_probe(struct usb_interface *interface,
|
|||
retval = -ENOMEM;
|
||||
goto error;
|
||||
}
|
||||
es2->arpc_urb[i] = urb;
|
||||
|
||||
buffer = kmalloc(ARPC_IN_SIZE_MAX, GFP_KERNEL);
|
||||
if (!buffer) {
|
||||
retval = -ENOMEM;
|
||||
|
@ -1661,7 +1665,6 @@ static int ap_probe(struct usb_interface *interface,
|
|||
buffer, ARPC_IN_SIZE_MAX,
|
||||
arpc_in_callback, es2);
|
||||
|
||||
es2->arpc_urb[i] = urb;
|
||||
es2->arpc_buffer[i] = buffer;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче