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>
This commit is contained in:
parent
215f894965
commit
8caed4df36
|
@ -117,7 +117,7 @@ SProcXSendExtensionEvent(ClientPtr client)
|
||||||
int
|
int
|
||||||
ProcXSendExtensionEvent(ClientPtr client)
|
ProcXSendExtensionEvent(ClientPtr client)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret, i;
|
||||||
DeviceIntPtr dev;
|
DeviceIntPtr dev;
|
||||||
xEvent *first;
|
xEvent *first;
|
||||||
XEventClass *list;
|
XEventClass *list;
|
||||||
|
@ -141,10 +141,12 @@ ProcXSendExtensionEvent(ClientPtr client)
|
||||||
/* The client's event type must be one defined by an extension. */
|
/* The client's event type must be one defined by an extension. */
|
||||||
|
|
||||||
first = ((xEvent *) &stuff[1]);
|
first = ((xEvent *) &stuff[1]);
|
||||||
if (!((EXTENSION_EVENT_BASE <= first->u.u.type) &&
|
for (i = 0; i < stuff->num_events; i++) {
|
||||||
(first->u.u.type < lastEvent))) {
|
if (!((EXTENSION_EVENT_BASE <= first[i].u.u.type) &&
|
||||||
client->errorValue = first->u.u.type;
|
(first[i].u.u.type < lastEvent))) {
|
||||||
return BadValue;
|
client->errorValue = first[i].u.u.type;
|
||||||
|
return BadValue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
list = (XEventClass *) (first + stuff->num_events);
|
list = (XEventClass *) (first + stuff->num_events);
|
||||||
|
|
Loading…
Reference in New Issue