1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- From 8caed4df36b1f802b4992edcfd282cbeeec35d9d Mon Sep 17 00:00:00 2001
- From: Michal Srb <msrb@suse.com>
- Date: Wed, 24 May 2017 15:54:41 +0300
- Subject: [PATCH] Xi: Verify all events in ProcXSendExtensionEvent.
- The requirement is that events have type in range
- EXTENSION_EVENT_BASE..lastEvent, but it was tested
- only for first event of all.
- Signed-off-by: Michal Srb <msrb@suse.com>
- Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
- Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
- Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
- ---
- Xi/sendexev.c | 12 +++++++-----
- 1 file changed, 7 insertions(+), 5 deletions(-)
- diff --git a/Xi/sendexev.c b/Xi/sendexev.c
- index 1cf118ab6..5e63bfcca 100644
- --- a/Xi/sendexev.c
- +++ b/Xi/sendexev.c
- @@ -117,7 +117,7 @@ SProcXSendExtensionEvent(ClientPtr client)
- int
- ProcXSendExtensionEvent(ClientPtr client)
- {
- - int ret;
- + int ret, i;
- DeviceIntPtr dev;
- xEvent *first;
- XEventClass *list;
- @@ -141,10 +141,12 @@ ProcXSendExtensionEvent(ClientPtr client)
- /* The client's event type must be one defined by an extension. */
-
- first = ((xEvent *) &stuff[1]);
- - if (!((EXTENSION_EVENT_BASE <= first->u.u.type) &&
- - (first->u.u.type < lastEvent))) {
- - client->errorValue = first->u.u.type;
- - return BadValue;
- + for (i = 0; i < stuff->num_events; i++) {
- + if (!((EXTENSION_EVENT_BASE <= first[i].u.u.type) &&
- + (first[i].u.u.type < lastEvent))) {
- + client->errorValue = first[i].u.u.type;
- + return BadValue;
- + }
- }
-
- list = (XEventClass *) (first + stuff->num_events);
- --
- 2.11.0
|