OSDN Git Service

media: mc-entity.c: use WARN_ON, validate link pads
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Tue, 4 Feb 2020 18:13:13 +0000 (19:13 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Mon, 24 Feb 2020 16:21:58 +0000 (17:21 +0100)
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>
drivers/media/mc/mc-entity.c

index 668770e..211279c 100644 (file)
@@ -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)