diff options
author | Michel Dänzer <michel@tungstengraphics.com> | 2008-06-18 09:23:09 +0930 |
---|---|---|
committer | Peter Hutterer <peter@cs.unisa.edu.au> | 2008-06-18 10:17:08 +0930 |
commit | 068fa63496c7c363706f0d356b5132bc591c04c6 (patch) | |
tree | a34a38c3ea4f6c8c8188926c2bff60b64b1de26a | |
parent | d21155a3e9b51df946766926bc6155c8972c4439 (diff) |
dix: fix a crash when the client has a different byteorder.
Signed-off-by: Peter Hutterer <peter@cs.unisa.edu.au>
-rw-r--r-- | dix/events.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/dix/events.c b/dix/events.c index a35e9e404..4e11bda7d 100644 --- a/dix/events.c +++ b/dix/events.c @@ -6168,6 +6168,10 @@ WriteEventsToClient(ClientPtr pClient, int count, xEvent *events) if (events->u.u.type == GenericEvent) { eventlength += ((xGenericEvent*)events)->length * 4; + } + + if(pClient->swapped) + { if (eventlength > swapEventLen) { swapEventLen = eventlength; @@ -6178,10 +6182,7 @@ WriteEventsToClient(ClientPtr pClient, int count, xEvent *events) return; } } - } - if(pClient->swapped) - { for(i = 0; i < count; i++) { eventFrom = &events[i]; @@ -6192,7 +6193,7 @@ WriteEventsToClient(ClientPtr pClient, int count, xEvent *events) (*EventSwapVector[eventFrom->u.u.type & 0177]) (eventFrom, eventTo); - (void)WriteToClient(pClient, eventlength, (char *)&eventTo); + (void)WriteToClient(pClient, eventlength, (char *)eventTo); } } else |