]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
USB: serial: kl5kusb105: fix memleak on open
authorJohan Hovold <johan@kernel.org>
Fri, 4 Dec 2020 08:55:19 +0000 (09:55 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 11 Dec 2020 12:36:44 +0000 (13:36 +0100)
commit 3f203f057edfcf6bd02c6b942799262bfcf31f73 upstream.

Fix memory leak of control-message transfer buffer on successful open().

Fixes: 6774d5f53271 ("USB: serial: kl5kusb105: fix open error path")
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/serial/kl5kusb105.c

index 83c823d32ff96e5af5379dba5a5017245a541681..7b006fd4de0e6aaff079bfb18deda3c53d88cb0a 100644 (file)
@@ -293,12 +293,12 @@ static int  klsi_105_open(struct tty_struct *tty, struct usb_serial_port *port)
        priv->cfg.unknown2 = cfg->unknown2;
        spin_unlock_irqrestore(&priv->lock, flags);
 
+       kfree(cfg);
+
        /* READ_ON and urb submission */
        rc = usb_serial_generic_open(tty, port);
-       if (rc) {
-               retval = rc;
-               goto err_free_cfg;
-       }
+       if (rc)
+               return rc;
 
        rc = usb_control_msg(port->serial->dev,
                             usb_sndctrlpipe(port->serial->dev, 0),
@@ -341,8 +341,6 @@ err_disable_read:
                             KLSI_TIMEOUT);
 err_generic_close:
        usb_serial_generic_close(port);
-err_free_cfg:
-       kfree(cfg);
 
        return retval;
 }