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
7 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
8 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
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(+)
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
21 request.win = INVALID_WINDOW_ID;
22 request_XIGetClientPointer(&client_request, &request, BadWindow);
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;
29 test_data.cp_is_set = FALSE;
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
40 + client_request.req_len = req->length;
41 rc = ProcXIPassiveGrabDevice(&client_request);
45 request_XIPassiveGrabDevice(&client_request, request, BadDevice,
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;
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
63 test_data.dev = devices.mouse;
64 request.deviceid = devices.mouse->id;
65 request_XIQueryPointer(&client_request, &request, Success);
67 + /* test REQUEST_SIZE_MATCH */
68 + client_request.req_len -= 4;
69 + request_XIQueryPointer(&client_request, &request, BadLength);
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
78 request_XIWarpPointer(&client_request, &request, Success);
80 /* FIXME: src_x/y checks */
82 + client_request.req_len -= 2; /* invalid length */
83 + request_XIWarpPointer(&client_request, &request, BadLength);