Re: [PATCH] media: vidtv: Check for null return of vzalloc

From: Hans Verkuil
Date: Tue Jan 11 2022 - 04:58:18 EST


On 31/12/2021 08:50, Jiasheng Jiang wrote:
> As the possible failure of the vzalloc(), e->encoder_buf might be NULL.
> Therefore, it should be better to check it like the kzalloc() in order
> to guarantee the success of the initialization.
>
> Fixes: f90cf6079bf6 ("media: vidtv: add a bridge driver")
> Signed-off-by: Jiasheng Jiang <jiasheng@xxxxxxxxxxx>
> ---
> drivers/media/test-drivers/vidtv/vidtv_s302m.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/media/test-drivers/vidtv/vidtv_s302m.c b/drivers/media/test-drivers/vidtv/vidtv_s302m.c
> index d79b65854627..d7907f1ae530 100644
> --- a/drivers/media/test-drivers/vidtv/vidtv_s302m.c
> +++ b/drivers/media/test-drivers/vidtv/vidtv_s302m.c
> @@ -455,6 +455,11 @@ struct vidtv_encoder
> e->name = kstrdup(args.name, GFP_KERNEL);
>
> e->encoder_buf = vzalloc(VIDTV_S302M_BUF_SZ);
> + if (!e->encoder_buf) {

This doesn't free e->name!

Actually, the same issue is also present later in this function:

ctx = kzalloc(priv_sz, GFP_KERNEL);
if (!ctx) {
kfree(e);
return NULL;
}

Regards,

Hans

> + kfree(e);
> + return NULL;
> + }
> +
> e->encoder_buf_sz = VIDTV_S302M_BUF_SZ;
> e->encoder_buf_offset = 0;
>