| 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; |
| } |