diff options
Diffstat (limited to 'dix/events.c')
-rw-r--r-- | dix/events.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/dix/events.c b/dix/events.c index 3e3a01ef9..d3a33ea3f 100644 --- a/dix/events.c +++ b/dix/events.c @@ -5366,6 +5366,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) { |