Imported Debian patch 2:1.15.1-0ubuntu2.6
[deb_xorg-server.git] / debian / patches / CVE-2014-8xxx / 0018-Add-request-length-checking-test-cases-for-some-Xinp.patch
CommitLineData
7217e0ca
ML
1From a8d2ec0a4c11fb5804c073a5b74ba342d59843a8 Mon Sep 17 00:00:00 2001
2From: Alan Coopersmith <alan.coopersmith@oracle.com>
3Date: Sun, 9 Feb 2014 21:28:05 -0800
4Subject: [PATCH 18/33] Add request length checking test cases for some Xinput
5 2.x requests
6
7Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
8Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
9---
10 test/xi2/protocol-xigetclientpointer.c | 5 +++++
11 test/xi2/protocol-xipassivegrabdevice.c | 8 ++++++++
12 test/xi2/protocol-xiquerypointer.c | 4 ++++
13 test/xi2/protocol-xiwarppointer.c | 3 +++
14 4 files changed, 20 insertions(+)
15
16Index: xorg-server-1.15.1/test/xi2/protocol-xigetclientpointer.c
17===================================================================
18--- xorg-server-1.15.1.orig/test/xi2/protocol-xigetclientpointer.c 2014-12-04 11:54:32.024693177 -0500
19+++ xorg-server-1.15.1/test/xi2/protocol-xigetclientpointer.c 2014-12-04 11:54:32.020693152 -0500
20@@ -124,6 +124,11 @@
21 request.win = INVALID_WINDOW_ID;
22 request_XIGetClientPointer(&client_request, &request, BadWindow);
23
24+ printf("Testing invalid length\n");
25+ client_request.req_len -= 4;
26+ request_XIGetClientPointer(&client_request, &request, BadLength);
27+ client_request.req_len += 4;
28+
29 test_data.cp_is_set = FALSE;
30
31 printf("Testing window None, unset ClientPointer.\n");
32Index: xorg-server-1.15.1/test/xi2/protocol-xipassivegrabdevice.c
33===================================================================
34--- xorg-server-1.15.1.orig/test/xi2/protocol-xipassivegrabdevice.c 2014-12-04 11:54:32.024693177 -0500
35+++ xorg-server-1.15.1/test/xi2/protocol-xipassivegrabdevice.c 2014-12-04 11:54:32.020693152 -0500
36@@ -139,6 +139,7 @@
37 int modifiers;
38 int mask_len;
39
40+ client_request.req_len = req->length;
41 rc = ProcXIPassiveGrabDevice(&client_request);
42 assert(rc == error);
43
44@@ -190,6 +191,13 @@
45 request_XIPassiveGrabDevice(&client_request, request, BadDevice,
46 request->deviceid);
47
48+ printf("Testing invalid length\n");
49+ request->length -= 2;
50+ request_XIPassiveGrabDevice(&client_request, request, BadLength,
51+ client_request.errorValue);
52+ /* re-init request since swapped length test leaves some values swapped */
53+ request_init(request, XIPassiveGrabDevice);
54+ request->grab_window = CLIENT_WINDOW_ID;
55 request->deviceid = XIAllMasterDevices;
56
57 printf("Testing invalid grab types\n");
58Index: xorg-server-1.15.1/test/xi2/protocol-xiquerypointer.c
59===================================================================
60--- xorg-server-1.15.1.orig/test/xi2/protocol-xiquerypointer.c 2014-12-04 11:54:32.024693177 -0500
61+++ xorg-server-1.15.1/test/xi2/protocol-xiquerypointer.c 2014-12-04 11:54:32.020693152 -0500
62@@ -201,6 +201,10 @@
63 test_data.dev = devices.mouse;
64 request.deviceid = devices.mouse->id;
65 request_XIQueryPointer(&client_request, &request, Success);
66+
67+ /* test REQUEST_SIZE_MATCH */
68+ client_request.req_len -= 4;
69+ request_XIQueryPointer(&client_request, &request, BadLength);
70 }
71
72 int
73Index: xorg-server-1.15.1/test/xi2/protocol-xiwarppointer.c
74===================================================================
75--- xorg-server-1.15.1.orig/test/xi2/protocol-xiwarppointer.c 2014-12-04 11:54:32.024693177 -0500
76+++ xorg-server-1.15.1/test/xi2/protocol-xiwarppointer.c 2014-12-04 11:54:32.020693152 -0500
77@@ -198,6 +198,9 @@
78 request_XIWarpPointer(&client_request, &request, Success);
79
80 /* FIXME: src_x/y checks */
81+
82+ client_request.req_len -= 2; /* invalid length */
83+ request_XIWarpPointer(&client_request, &request, BadLength);
84 }
85
86 int