2022-11-17 07:22:04

by Jiasheng Jiang

[permalink] [raw]
Subject: [PATCH] media: coda: Add check for dcoda_iram_alloc

As the coda_iram_alloc may return NULL pointer,
it should be better to check the return value
in order to avoid NULL poineter dereference,
same as the others.

Fixes: b313bcc9a467 ("[media] coda: simplify IRAM setup")
Signed-off-by: Jiasheng Jiang <[email protected]>
---
drivers/media/platform/chips-media/coda-bit.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/media/platform/chips-media/coda-bit.c b/drivers/media/platform/chips-media/coda-bit.c
index 2736a902e3df..6d816fd69a17 100644
--- a/drivers/media/platform/chips-media/coda-bit.c
+++ b/drivers/media/platform/chips-media/coda-bit.c
@@ -854,7 +854,7 @@ static void coda_setup_iram(struct coda_ctx *ctx)
/* Only H.264BP and H.263P3 are considered */
iram_info->buf_dbk_y_use = coda_iram_alloc(iram_info, w64);
iram_info->buf_dbk_c_use = coda_iram_alloc(iram_info, w64);
- if (!iram_info->buf_dbk_c_use)
+ if (!iram_info->buf_dbk_y_use || !iram_info->buf_dbk_c_use)
goto out;
iram_info->axi_sram_use |= dbk_bits;

@@ -878,7 +878,7 @@ static void coda_setup_iram(struct coda_ctx *ctx)

iram_info->buf_dbk_y_use = coda_iram_alloc(iram_info, w128);
iram_info->buf_dbk_c_use = coda_iram_alloc(iram_info, w128);
- if (!iram_info->buf_dbk_c_use)
+ if (!iram_info->buf_dbk_y_use || !iram_info->buf_dbk_c_use)
goto out;
iram_info->axi_sram_use |= dbk_bits;

--
2.25.1



2022-12-16 17:46:44

by Philipp Zabel

[permalink] [raw]
Subject: Re: [PATCH] media: coda: Add check for dcoda_iram_alloc

On Do, 2022-11-17 at 14:56 +0800, Jiasheng Jiang wrote:
> As the coda_iram_alloc may return NULL pointer,

coda_iram_alloc() may return (phys_addr_t)0, not a NULL pointer.

> it should be better to check the return value
> in order to avoid NULL poineter dereference,
> same as the others.
>
> Fixes: b313bcc9a467 ("[media] coda: simplify IRAM setup")
> Signed-off-by: Jiasheng Jiang <[email protected]>
> ---
>  drivers/media/platform/chips-media/coda-bit.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/platform/chips-media/coda-bit.c b/drivers/media/platform/chips-media/coda-bit.c
> index 2736a902e3df..6d816fd69a17 100644
> --- a/drivers/media/platform/chips-media/coda-bit.c
> +++ b/drivers/media/platform/chips-media/coda-bit.c
> @@ -854,7 +854,7 @@ static void coda_setup_iram(struct coda_ctx *ctx)
>   /* Only H.264BP and H.263P3 are considered */
>   iram_info->buf_dbk_y_use = coda_iram_alloc(iram_info, w64);

While this can return 0, if this allocation fails, ...

>   iram_info->buf_dbk_c_use = coda_iram_alloc(iram_info, w64);

... this one must fail as well.

> - if (!iram_info->buf_dbk_c_use)

So the buf_dbk_c_use check is enough.

regards
Philipp