summaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2015-12-29 13:36:11 +0100
committerJohan Hovold <johan@kernel.org>2015-12-29 13:43:13 +0100
commit924eccc73db2f64a24865d21ff11be8043b24375 (patch)
treef66de8ecad9723221b5c7ca5ac3bbcf5374e349c /drivers/usb/serial
parent0b2b093ad405b56a9e6f4f20a25da77ebfa9549c (diff)
downloadlinux-924eccc73db2f64a24865d21ff11be8043b24375.tar.bz2
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 <johan@kernel.org>
Diffstat (limited to 'drivers/usb/serial')
-rw-r--r--drivers/usb/serial/mxu11x0.c12
1 files changed, 5 insertions, 7 deletions
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: