lkml.org 
[lkml]   [2019]   [Sep]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.4 27/44] media: cpia2_usb: fix memory leaks
    Date
    From: Wenwen Wang <wenwen@cs.uga.edu>

    [ Upstream commit 1c770f0f52dca1a2323c594f01f5ec6f1dddc97f ]

    In submit_urbs(), 'cam->sbuf[i].data' is allocated through kmalloc_array().
    However, it is not deallocated if the following allocation for urbs fails.
    To fix this issue, free 'cam->sbuf[i].data' if usb_alloc_urb() fails.

    Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/media/usb/cpia2/cpia2_usb.c | 4 ++++
    1 file changed, 4 insertions(+)

    diff --git a/drivers/media/usb/cpia2/cpia2_usb.c b/drivers/media/usb/cpia2/cpia2_usb.c
    index 41ea00ac3a873..76b9cb940b871 100644
    --- a/drivers/media/usb/cpia2/cpia2_usb.c
    +++ b/drivers/media/usb/cpia2/cpia2_usb.c
    @@ -665,6 +665,10 @@ static int submit_urbs(struct camera_data *cam)
    ERR("%s: usb_alloc_urb error!\n", __func__);
    for (j = 0; j < i; j++)
    usb_free_urb(cam->sbuf[j].urb);
    + for (j = 0; j < NUM_SBUF; j++) {
    + kfree(cam->sbuf[j].data);
    + cam->sbuf[j].data = NULL;
    + }
    return -ENOMEM;
    }

    --
    2.20.1
    \
     
     \ /
      Last update: 2019-09-22 21:02    [W:3.693 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site