Commit 55f1ecb1 authored by Sakari Ailus's avatar Sakari Ailus Committed by Mauro Carvalho Chehab

media: v4l: subdev: Make link validation safer

Link validation currently accesses invalid pointers if the link passed to
it is not between two sub-devices. This is of course a driver bug.

Ignore the error but print a warning message, as this is how it used to
work previously.

Fixes: a6b995ed ("media: subdev: use streams in v4l2_subdev_link_validate()")
Reported-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Tested-by: default avatarHans de Goede <hdegoede@redhat.com>
Reviewed-by: default avatarTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent 53077915
......@@ -1258,6 +1258,16 @@ int v4l2_subdev_link_validate(struct media_link *link)
bool states_locked;
int ret;
if (!is_media_entity_v4l2_subdev(link->sink->entity) ||
!is_media_entity_v4l2_subdev(link->source->entity)) {
pr_warn_once("%s of link '%s':%u->'%s':%u is not a V4L2 sub-device, driver bug!\n",
!is_media_entity_v4l2_subdev(link->sink->entity) ?
"sink" : "source",
link->source->entity->name, link->source->index,
link->sink->entity->name, link->sink->index);
return 0;
}
sink_sd = media_entity_to_v4l2_subdev(link->sink->entity);
source_sd = media_entity_to_v4l2_subdev(link->source->entity);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment