lkml.org 
[lkml]   [2019]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.14 009/130] rtlwifi: prevent memory leak in rtl_usb_probe
    Date
    From: Navid Emamdoost <navid.emamdoost@gmail.com>

    [ Upstream commit 3f93616951138a598d930dcaec40f2bfd9ce43bb ]

    In rtl_usb_probe if allocation for usb_data fails the allocated hw
    should be released. In addition the allocated rtlpriv->usb_data should
    be released on error handling path.

    Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/realtek/rtlwifi/usb.c | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    diff --git a/drivers/net/wireless/realtek/rtlwifi/usb.c b/drivers/net/wireless/realtek/rtlwifi/usb.c
    index 2401c8bdb211e..93eda23f01239 100644
    --- a/drivers/net/wireless/realtek/rtlwifi/usb.c
    +++ b/drivers/net/wireless/realtek/rtlwifi/usb.c
    @@ -1068,8 +1068,10 @@ int rtl_usb_probe(struct usb_interface *intf,
    rtlpriv->hw = hw;
    rtlpriv->usb_data = kzalloc(RTL_USB_MAX_RX_COUNT * sizeof(u32),
    GFP_KERNEL);
    - if (!rtlpriv->usb_data)
    + if (!rtlpriv->usb_data) {
    + ieee80211_free_hw(hw);
    return -ENOMEM;
    + }

    /* this spin lock must be initialized early */
    spin_lock_init(&rtlpriv->locks.usb_lock);
    @@ -1130,6 +1132,7 @@ int rtl_usb_probe(struct usb_interface *intf,
    _rtl_usb_io_handler_release(hw);
    usb_put_dev(udev);
    complete(&rtlpriv->firmware_loading_complete);
    + kfree(rtlpriv->usb_data);
    return -ENODEV;
    }
    EXPORT_SYMBOL(rtl_usb_probe);
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-12-10 23:04    [W:2.301 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site