summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <michel@tungstengraphics.com>2008-06-18 09:23:09 +0930
committerPeter Hutterer <peter@cs.unisa.edu.au>2008-06-18 10:17:08 +0930
commit068fa63496c7c363706f0d356b5132bc591c04c6 (patch)
treea34a38c3ea4f6c8c8188926c2bff60b64b1de26a
parentd21155a3e9b51df946766926bc6155c8972c4439 (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.c9
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