lkml.org 
[lkml]   [2019]   [Sep]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 33/57] net: kalmia: fix memory leaks
    Date
    [ Upstream commit f1472cb09f11ddb41d4be84f0650835cb65a9073 ]

    In kalmia_init_and_get_ethernet_addr(), 'usb_buf' is allocated through
    kmalloc(). In the following execution, if the 'status' returned by
    kalmia_send_init_packet() is not 0, 'usb_buf' is not deallocated, leading
    to memory leaks. To fix this issue, add the 'out' label to free 'usb_buf'.

    Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/usb/kalmia.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    diff --git a/drivers/net/usb/kalmia.c b/drivers/net/usb/kalmia.c
    index bd2ba36590288..0cc6993c279a2 100644
    --- a/drivers/net/usb/kalmia.c
    +++ b/drivers/net/usb/kalmia.c
    @@ -117,16 +117,16 @@ kalmia_init_and_get_ethernet_addr(struct usbnet *dev, u8 *ethernet_addr)
    status = kalmia_send_init_packet(dev, usb_buf, ARRAY_SIZE(init_msg_1),
    usb_buf, 24);
    if (status != 0)
    - return status;
    + goto out;

    memcpy(usb_buf, init_msg_2, 12);
    status = kalmia_send_init_packet(dev, usb_buf, ARRAY_SIZE(init_msg_2),
    usb_buf, 28);
    if (status != 0)
    - return status;
    + goto out;

    memcpy(ethernet_addr, usb_buf + 10, ETH_ALEN);
    -
    +out:
    kfree(usb_buf);
    return status;
    }
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-09-08 14:49    [W:4.415 / U:0.656 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site