[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aV-5HlUJ4u-yTbmK@zed>
Date: Thu, 8 Jan 2026 15:07:58 +0100
From: Jacopo Mondi <jacopo.mondi@...asonboard.com>
To: Alper Ak <alperyasinak1@...il.com>
Cc: dan.scally@...asonboard.com, jacopo.mondi@...asonboard.com,
Mauro Carvalho Chehab <mchehab@...nel.org>, Nayden Kanchev <nayden.kanchev@....com>,
Hans Verkuil <hverkuil+cisco@...nel.org>, linux-media@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] media: mali-c55: Fix possible ERR_PTR dereference in
mali_c55_isp_enable_streams()
Hello Alper
On Sat, Dec 27, 2025 at 02:51:52PM +0300, Alper Ak wrote:
> media_pad_remote_pad_unique() can return ERR_PTR(-ENOTUNIQ) or
> ERR_PTR(-ENOLINK) on error situation.
>
> The current code dereferences isp->remote_src without checking
> for these error cases, which could lead to invalid memory access.
>
> Add IS_ERR() check before dereferencing the pointer.
>
> Fixes: d5f281f3dd29 ("media: mali-c55: Add Mali-C55 ISP driver")
> Signed-off-by: Alper Ak <alperyasinak1@...il.com>
> ---
> drivers/media/platform/arm/mali-c55/mali-c55-isp.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/media/platform/arm/mali-c55/mali-c55-isp.c b/drivers/media/platform/arm/mali-c55/mali-c55-isp.c
> index 497f25fbdd13..ca1f0bde6f13 100644
> --- a/drivers/media/platform/arm/mali-c55/mali-c55-isp.c
> +++ b/drivers/media/platform/arm/mali-c55/mali-c55-isp.c
> @@ -359,7 +359,11 @@ static int mali_c55_isp_enable_streams(struct v4l2_subdev *sd,
> */
>
> sink_pad = &isp->pads[MALI_C55_ISP_PAD_SINK_VIDEO];
> +
> isp->remote_src = media_pad_remote_pad_unique(sink_pad);
> + if (IS_ERR(isp->remote_src))
> + return PTR_ERR(isp->remote_src);
> +
To be honest I'm not sure if this can happen.
-ENOTUNIQ shouldn't be possible as we create a link for the single
subev connected to port 0
-ENOLINK shouldn't be possible as well, as if the remote subdev
doesn't bind we won't have a media graph at all
Being defensive it's always wise, but sometimes being too defensive
might result in the reader asking what the code is protecting against
if an error condition is impossible to reach.
Is there a case which I have missed which can lead to an error
condition ?
Thanks
j
> src_sd = media_entity_to_v4l2_subdev(isp->remote_src->entity);
>
> isp->frame_sequence = 0;
> --
> 2.43.0
>
>
Powered by blists - more mailing lists