Commit | Line | Data |
---|---|---|
7217e0ca ML |
1 | From a8d2ec0a4c11fb5804c073a5b74ba342d59843a8 Mon Sep 17 00:00:00 2001 |
2 | From: Alan Coopersmith <alan.coopersmith@oracle.com> | |
3 | Date: Sun, 9 Feb 2014 21:28:05 -0800 | |
4 | Subject: [PATCH 18/33] Add request length checking test cases for some Xinput | |
5 | 2.x requests | |
6 | ||
7 | Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> | |
8 | Reviewed-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 | ||
16 | Index: 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"); | |
32 | Index: 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"); | |
58 | Index: 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 | |
73 | Index: 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 |