Browse Source

Fix bad size calculation in GetQueryConnect handler as well

as an endian conversion fix. Patch by Christian Steinle.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@5124 3789f03b-4d11-0410-bbf8-ca57d06f2519
tags/v1.3.90
Pierre Ossman 11 years ago
parent
commit
749eaa7c68
1 changed files with 5 additions and 3 deletions
  1. 5
    3
      unix/xserver/hw/vnc/vncExtInit.cc

+ 5
- 3
unix/xserver/hw/vnc/vncExtInit.cc View File

@@ -1025,21 +1025,23 @@ static int ProcVncExtGetQueryConnect(ClientPtr client)
rep.addrLen = qcTimeout ? strlen(qcAddress) : 0;
rep.userLen = qcTimeout ? strlen(qcUsername) : 0;
rep.opaqueId = (CARD32)(long)queryConnectId;
rep.length = (rep.userLen + rep.addrLen + 3) >> 2;
rep.length = ((rep.userLen + 3) >> 2) + ((rep.addrLen + 3) >> 2);
if (client->swapped) {
#if XORG < 112
int n;
swaps(&rep.sequenceNumber, n);
swapl(&rep.userLen, n);
swapl(&rep.addrLen, n);
swapl(&rep.userLen, n);
swapl(&rep.timeout, n);
swapl(&rep.opaqueId, n);
swapl(&rep.length, n);
#else
swaps(&rep.sequenceNumber);
swapl(&rep.userLen);
swapl(&rep.addrLen);
swapl(&rep.userLen);
swapl(&rep.timeout);
swapl(&rep.opaqueId);
swapl(&rep.length);
#endif
}
WriteToClient(client, sizeof(xVncExtGetQueryConnectReply), (char *)&rep);

Loading…
Cancel
Save