lkml.org 
[lkml]   [2012]   [Nov]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 246/270] USB: sierra: fix memory leak in attach error path
    Date
    3.5.7u1 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Johan Hovold <jhovold@gmail.com>

    commit 7e41f9bcdd2e813ea2a3c40db291d87ea06b559f upstream.

    Make sure port private data is deallocated on errors in attach.

    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
    ---
    drivers/usb/serial/sierra.c | 9 ++++++++-
    1 file changed, 8 insertions(+), 1 deletion(-)

    diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
    index 7d7ab91..f72bbaa 100644
    --- a/drivers/usb/serial/sierra.c
    +++ b/drivers/usb/serial/sierra.c
    @@ -910,7 +910,7 @@ static int sierra_startup(struct usb_serial *serial)
    dev_dbg(&port->dev, "%s: kmalloc for "
    "sierra_port_private (%d) failed!\n",
    __func__, i);
    - return -ENOMEM;
    + goto err;
    }
    spin_lock_init(&portdata->lock);
    init_usb_anchor(&portdata->active);
    @@ -947,6 +947,13 @@ static int sierra_startup(struct usb_serial *serial)
    }

    return 0;
    +err:
    + for (--i; i >= 0; --i) {
    + portdata = usb_get_serial_port_data(serial->port[i]);
    + kfree(portdata);
    + }
    +
    + return -ENOMEM;
    }

    static void sierra_release(struct usb_serial *serial)
    --
    1.7.9.5


    \
     
     \ /
      Last update: 2012-11-26 19:21    [W:4.022 / U:0.224 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site