blob: 5fd7dcd376906a5bd8d9fb25889c867f469c63ca [file] [log] [blame]
From oneukum@suse.de Tue Mar 20 05:15:13 2007
From: Oliver Neukum <oneukum@suse.de>
To: Greg KH <gregkh@suse.de>, linux-usb-devel@lists.sourceforge.net
Subject: USB: omninet memory leak in error case
Date: Tue, 20 Mar 2007 13:15:05 +0100
Message-Id: <200703201315.06001.oneukum@suse.de>
memory allocated must be freed in the error case.
Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/usb/serial/omninet.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--- a/drivers/usb/serial/omninet.c
+++ b/drivers/usb/serial/omninet.c
@@ -170,8 +170,12 @@ static int omninet_open (struct usb_seri
port->read_urb->transfer_buffer, port->read_urb->transfer_buffer_length,
omninet_read_bulk_callback, port);
result = usb_submit_urb(port->read_urb, GFP_KERNEL);
- if (result)
+ if (result) {
err("%s - failed submitting read urb, error %d", __FUNCTION__, result);
+ /* open failed - all allocations must be freed */
+ kfree(od);
+ usb_set_serial_port_data(port, NULL);
+ }
return result;
}