From: Johan Hovold <[email protected]>

commit 3f203f057edfcf6bd02c6b942799262bfcf31f73 upstream.

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

Fixes: 6774d5f53271 ("USB: serial: kl5kusb105: fix open error path")
Cc: [email protected]
Signed-off-by: Johan Hovold <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 drivers/usb/serial/kl5kusb105.c |   10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

--- a/drivers/usb/serial/kl5kusb105.c
+++ b/drivers/usb/serial/kl5kusb105.c
@@ -281,12 +281,12 @@ static int  klsi_105_open(struct tty_str
        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),
@@ -329,8 +329,6 @@ err_disable_read:
                             KLSI_TIMEOUT);
 err_generic_close:
        usb_serial_generic_close(port);
-err_free_cfg:
-       kfree(cfg);
 
        return retval;
 }


Reply via email to