summaryrefslogtreecommitdiff
path: root/xserver/dix/events.c
diff options
context:
space:
mode:
Diffstat (limited to 'xserver/dix/events.c')
-rw-r--r--xserver/dix/events.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/xserver/dix/events.c b/xserver/dix/events.c
index efaf91d2b..0591f8fcb 100644
--- a/xserver/dix/events.c
+++ b/xserver/dix/events.c
@@ -5355,6 +5355,12 @@ ProcSendEvent(ClientPtr client)
client->errorValue = stuff->event.u.u.type;
return BadValue;
}
+ /* Generic events can have variable size, but SendEvent request holds
+ exactly 32B of event data. */
+ if (stuff->event.u.u.type == GenericEvent) {
+ client->errorValue = stuff->event.u.u.type;
+ return BadValue;
+ }
if (stuff->event.u.u.type == ClientMessage &&
stuff->event.u.u.detail != 8 &&
stuff->event.u.u.detail != 16 && stuff->event.u.u.detail != 32) {