aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.10/950-0293-media-bcm2835-unicam-Ensure-type-is-VIDEO_CAPTURE-in.patch
blob: 0645035f52f5aa9d4d3099ca3db256670f9d517f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
From c1dc0c0bcda6de7374a46d99a73f855603d366a5 Mon Sep 17 00:00:00 2001
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
Date: Tue, 7 Jul 2020 14:52:43 +0100
Subject: [PATCH] media: bcm2835-unicam: Ensure type is VIDEO_CAPTURE
 in [g|s]_selection

[g|s]_selection pass in a buffer type that needs to be validated
before passing on to the sensor subdev.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
---
 drivers/media/platform/bcm2835/bcm2835-unicam.c | 6 ++++++
 1 file changed, 6 insertions(+)

--- a/drivers/media/platform/bcm2835/bcm2835-unicam.c
+++ b/drivers/media/platform/bcm2835/bcm2835-unicam.c
@@ -1885,6 +1885,9 @@ static int unicam_s_selection(struct fil
 		.r = sel->r,
 	};
 
+	if (sel->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
+		return -EINVAL;
+
 	return v4l2_subdev_call(dev->sensor, pad, set_selection, NULL, &sdsel);
 }
 
@@ -1899,6 +1902,9 @@ static int unicam_g_selection(struct fil
 	};
 	int ret;
 
+	if (sel->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
+		return -EINVAL;
+
 	ret = v4l2_subdev_call(dev->sensor, pad, get_selection, NULL, &sdsel);
 	if (!ret)
 		sel->r = sdsel.r;