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:
parent
d21155a3e9
commit
068fa63496
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue