diff options
Diffstat (limited to 'xserver/dix/events.c')
-rw-r--r-- | xserver/dix/events.c | 6 |
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) { |