From: Johan Hovold Date: Tue, 29 Dec 2015 12:36:11 +0000 (+0100) Subject: USB: mxu11x0: fix memory leak in port-probe error path X-Git-Tag: v4.5-rc1~124^2~3^2~5 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=924eccc73db2f64a24865d21ff11be8043b24375;p=linux.git USB: mxu11x0: fix memory leak in port-probe error path Fix memory leak in port-probe error path by verifying the interrupt-in urb before allocating the private data. Signed-off-by: Johan Hovold --- diff --git a/drivers/usb/serial/mxu11x0.c b/drivers/usb/serial/mxu11x0.c index 8884ca276e67..89426c3eba98 100644 --- a/drivers/usb/serial/mxu11x0.c +++ b/drivers/usb/serial/mxu11x0.c @@ -333,7 +333,11 @@ static int mxu1_port_probe(struct usb_serial_port *port) { struct mxu1_port *mxport; struct mxu1_device *mxdev; - struct urb *urb; + + if (!port->interrupt_in_urb) { + dev_err(&port->dev, "no interrupt urb\n"); + return -ENODEV; + } mxport = kzalloc(sizeof(struct mxu1_port), GFP_KERNEL); if (!mxport) @@ -344,12 +348,6 @@ static int mxu1_port_probe(struct usb_serial_port *port) mxdev = usb_get_serial_data(port->serial); - urb = port->interrupt_in_urb; - if (!urb) { - dev_err(&port->dev, "%s - no interrupt urb\n", __func__); - return -EINVAL; - } - switch (mxdev->mxd_model) { case MXU1_1110_PRODUCT_ID: case MXU1_1150_PRODUCT_ID: