dix: fix a crash when the client has a different byteorder.

Signed-off-by: Peter Hutterer <peter@cs.unisa.edu.au>
This commit is contained in:
Michel Dänzer 2008-06-18 09:23:09 +09:30 committed by Peter Hutterer
parent d21155a3e9
commit 068fa63496

View File

@ -6168,6 +6168,10 @@ WriteEventsToClient(ClientPtr pClient, int count, xEvent *events)
if (events->u.u.type == GenericEvent) if (events->u.u.type == GenericEvent)
{ {
eventlength += ((xGenericEvent*)events)->length * 4; eventlength += ((xGenericEvent*)events)->length * 4;
}
if(pClient->swapped)
{
if (eventlength > swapEventLen) if (eventlength > swapEventLen)
{ {
swapEventLen = eventlength; swapEventLen = eventlength;
@ -6178,10 +6182,7 @@ WriteEventsToClient(ClientPtr pClient, int count, xEvent *events)
return; return;
} }
} }
}
if(pClient->swapped)
{
for(i = 0; i < count; i++) for(i = 0; i < count; i++)
{ {
eventFrom = &events[i]; eventFrom = &events[i];
@ -6192,7 +6193,7 @@ WriteEventsToClient(ClientPtr pClient, int count, xEvent *events)
(*EventSwapVector[eventFrom->u.u.type & 0177]) (*EventSwapVector[eventFrom->u.u.type & 0177])
(eventFrom, eventTo); (eventFrom, eventTo);
(void)WriteToClient(pClient, eventlength, (char *)&eventTo); (void)WriteToClient(pClient, eventlength, (char *)eventTo);
} }
} }
else else