From: Oliver Neukum Date: Tue, 20 Mar 2007 12:15:05 +0000 (+0100) Subject: USB: omninet memory leak in error case X-Git-Tag: v2.6.22-rc1~1117^2~46 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4f93b3e8212df43ff380e118aebb68f6d1e5b060;p=linux-2.6 USB: omninet memory leak in error case memory allocated must be freed in the error case. Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/serial/omninet.c b/drivers/usb/serial/omninet.c index 0216ac12a2..357cc11915 100644 --- a/drivers/usb/serial/omninet.c +++ b/drivers/usb/serial/omninet.c @@ -170,8 +170,12 @@ static int omninet_open (struct usb_serial_port *port, struct file *filp) 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; }