]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/3.18.103/media-v4l2-compat-ioctl32-copy-v4l2_window-global_alpha.patch
Linux 4.14.95
[thirdparty/kernel/stable-queue.git] / releases / 3.18.103 / media-v4l2-compat-ioctl32-copy-v4l2_window-global_alpha.patch
1 From foo@baz Wed Apr 4 17:30:18 CEST 2018
2 From: Mauro Carvalho Chehab <mchehab@s-opensource.com>
3 Date: Wed, 28 Mar 2018 15:12:29 -0300
4 Subject: media: v4l2-compat-ioctl32: Copy v4l2_window->global_alpha
5 To: Linux Media Mailing List <linux-media@vger.kernel.org>, stable@vger.kernel.org
6 Cc: Daniel Mentz <danielmentz@google.com>, Mauro Carvalho Chehab <mchehab@infradead.org>, Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, Hans Verkuil <hans.verkuil@cisco.com>, Mauro Carvalho Chehab <mchehab@s-opensource.com>, Sasha Levin <alexander.levin@microsoft.com>
7 Message-ID: <63c220c11ade842157669d03bdaf10b84a6d91a9.1522260310.git.mchehab@s-opensource.com>
8
9 From: Daniel Mentz <danielmentz@google.com>
10
11 commit 025a26fa14f8fd55d50ab284a30c016a5be953d0 upstream.
12
13 Commit b2787845fb91 ("V4L/DVB (5289): Add support for video output
14 overlays.") added the field global_alpha to struct v4l2_window but did
15 not update the compat layer accordingly. This change adds global_alpha
16 to struct v4l2_window32 and copies the value for global_alpha back and
17 forth.
18
19 Signed-off-by: Daniel Mentz <danielmentz@google.com>
20 Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
21 Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
22 Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
23 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
24 ---
25 drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 7 +++++--
26 1 file changed, 5 insertions(+), 2 deletions(-)
27
28 --- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
29 +++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
30 @@ -45,6 +45,7 @@ struct v4l2_window32 {
31 compat_caddr_t clips; /* actually struct v4l2_clip32 * */
32 __u32 clipcount;
33 compat_caddr_t bitmap;
34 + __u8 global_alpha;
35 };
36
37 static int get_v4l2_window32(struct v4l2_window *kp, struct v4l2_window32 __user *up)
38 @@ -53,7 +54,8 @@ static int get_v4l2_window32(struct v4l2
39 copy_from_user(&kp->w, &up->w, sizeof(up->w)) ||
40 get_user(kp->field, &up->field) ||
41 get_user(kp->chromakey, &up->chromakey) ||
42 - get_user(kp->clipcount, &up->clipcount))
43 + get_user(kp->clipcount, &up->clipcount) ||
44 + get_user(kp->global_alpha, &up->global_alpha))
45 return -EFAULT;
46 if (kp->clipcount > 2048)
47 return -EINVAL;
48 @@ -86,7 +88,8 @@ static int put_v4l2_window32(struct v4l2
49 if (copy_to_user(&up->w, &kp->w, sizeof(kp->w)) ||
50 put_user(kp->field, &up->field) ||
51 put_user(kp->chromakey, &up->chromakey) ||
52 - put_user(kp->clipcount, &up->clipcount))
53 + put_user(kp->clipcount, &up->clipcount) ||
54 + put_user(kp->global_alpha, &up->global_alpha))
55 return -EFAULT;
56 return 0;
57 }