diff --git a/vncsession.cc b/vncsession.cc index 17cf969..1e27922 100644 --- a/vncsession.cc +++ b/vncsession.cc @@ -360,11 +360,13 @@ BOOLEAN DoReadTCP (unsigned long dataLength) { if (theSRBuff.srRcvQueued < dataLength) return FALSE; - if ((tcperr = TCPIPReadTCP(hostIpid, buffTypeHandle, (Ref) readBufferHndl, + DisposeHandle(readBufferHndl); + if ((tcperr = TCPIPReadTCP(hostIpid, buffTypeNewHandle, NULL, dataLength, &theRRBuff)) != tcperrOK) return FALSE; if (toolerror()) return FALSE; + readBufferHndl = theRRBuff.rrBuffHandle; if (theRRBuff.rrBuffCount != dataLength) return ReadFixup(dataLength, theRRBuff.rrBuffCount);