media: nxp: imx8-isi: Check whether crossbar pad is non-NULL before access
[ Upstream commiteb2f932100] When translating source to sink streams in the crossbar subdev, the driver tries to locate the remote subdev connected to the sink pad. The remote pad may be NULL, if userspace tries to enable a stream that ends at an unconnected crossbar sink. When that occurs, the driver dereferences the NULL pad, leading to a crash. Prevent the crash by checking if the pad is NULL before using it, and return an error if it is. Cc: stable@vger.kernel.org # 6.1 Fixes:cf21f328fc("media: nxp: Add i.MX8 ISI driver") Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Fabio Estevam <festevam@gmail.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Link: https://lore.kernel.org/r/20231201150614.63300-1-marex@denx.de Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
83c4f04e86
commit
91c8ce42fc
@@ -160,8 +160,14 @@ mxc_isi_crossbar_xlate_streams(struct mxc_isi_crossbar *xbar,
|
||||
}
|
||||
|
||||
pad = media_pad_remote_pad_first(&xbar->pads[sink_pad]);
|
||||
sd = media_entity_to_v4l2_subdev(pad->entity);
|
||||
if (!pad) {
|
||||
dev_dbg(xbar->isi->dev,
|
||||
"no pad connected to crossbar input %u\n",
|
||||
sink_pad);
|
||||
return ERR_PTR(-EPIPE);
|
||||
}
|
||||
|
||||
sd = media_entity_to_v4l2_subdev(pad->entity);
|
||||
if (!sd) {
|
||||
dev_dbg(xbar->isi->dev,
|
||||
"no entity connected to crossbar input %u\n",
|
||||
|
||||
Reference in New Issue
Block a user