Re: [PATCH] media: vidtv: Add the missing kfree to avoid the memory leak

From: Hans Verkuil
Date: Thu Jan 13 2022 - 05:09:20 EST


On 12/01/2022 03:05, Jiasheng Jiang wrote:
> Since kstrdup() allocate a space for e->name and will not automatically
> free.
> If kzalloc() fails, we just kfree e without e->name.
> Then we cannot get the pointer 'e->name' and cause the memory leak.
>
> Fixes: 3d1387b3b8f6 ("media: vidtv: fix some warnings")
> Reported-by: Hans Verkuil <hverkuil@xxxxxxxxx>
> Signed-off-by: Jiasheng Jiang <jiasheng@xxxxxxxxxxx>
> ---
> drivers/media/test-drivers/vidtv/vidtv_s302m.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/media/test-drivers/vidtv/vidtv_s302m.c b/drivers/media/test-drivers/vidtv/vidtv_s302m.c
> index ddaff46c440f..433fc0c7fdfa 100644
> --- a/drivers/media/test-drivers/vidtv/vidtv_s302m.c
> +++ b/drivers/media/test-drivers/vidtv/vidtv_s302m.c
> @@ -474,6 +474,7 @@ struct vidtv_encoder
>
> ctx = kzalloc(priv_sz, GFP_KERNEL);
> if (!ctx) {
> + kfree(e->name);

It should also free e->encoder_buf.

Regards,

Hans

> kfree(e);
> return NULL;
> }