From 068fa63496c7c363706f0d356b5132bc591c04c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Wed, 18 Jun 2008 09:23:09 +0930 Subject: [PATCH] dix: fix a crash when the client has a different byteorder. Signed-off-by: Peter Hutterer --- dix/events.c | 9 +++++---- 1 file 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