diff options
author | Hans Verkuil <hverkuil-cisco@xs4all.nl> | 2020-02-04 19:13:13 +0100 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab+huawei@kernel.org> | 2020-02-24 17:21:58 +0100 |
commit | a3fbc2e6bb05a3b1ea341cd29dea09b4a033727b (patch) | |
tree | 029303fd9bdc26a515bb2f5c9d24476d16eb0e47 /drivers/media/mc | |
parent | 0c9d29eb1cceb8a155dd42769cc88b50c45f0dbe (diff) |
media: mc-entity.c: use WARN_ON, validate link pads
Use WARN_ON instead of BUG_ON.
Add two new WARN_ONs to verify that the source pad is really a source
and that the sink pad is really a sink.
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
[hverkuil-cisco@xs4all.nl: use ! instead of == NULL for source and sink]
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Diffstat (limited to 'drivers/media/mc')
-rw-r--r-- | drivers/media/mc/mc-entity.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/media/mc/mc-entity.c b/drivers/media/mc/mc-entity.c index 668770e9f609..211279c5fd77 100644 --- a/drivers/media/mc/mc-entity.c +++ b/drivers/media/mc/mc-entity.c @@ -662,9 +662,14 @@ media_create_pad_link(struct media_entity *source, u16 source_pad, struct media_link *link; struct media_link *backlink; - BUG_ON(source == NULL || sink == NULL); - BUG_ON(source_pad >= source->num_pads); - BUG_ON(sink_pad >= sink->num_pads); + if (WARN_ON(!source || !sink) || + WARN_ON(source_pad >= source->num_pads) || + WARN_ON(sink_pad >= sink->num_pads)) + return -EINVAL; + if (WARN_ON(!(source->pads[source_pad].flags & MEDIA_PAD_FL_SOURCE))) + return -EINVAL; + if (WARN_ON(!(sink->pads[sink_pad].flags & MEDIA_PAD_FL_SINK))) + return -EINVAL; link = media_add_link(&source->links); if (link == NULL) |