I have found some similar code in function TCustomLineWSocket.DoRecv() from
ICS-V5:
===
--- D:/DelphiComponents/Ics/Delphi/Vc32/WSocket.pas (revision 279)
+++ D:/DelphiComponents/Ics/Delphi/Vc32/WSocket.pas (working copy)
@@ -7874,13 +7874,13 @@
{ We are in line mode an a line is received }
if FLineLength = BufferSize then begin
{ User buffer is greater than received data, copy all and clear }
-Move(FRcvdPtr^, Buffer, FLineLength);
+Move(FRcvdPtr^, Buffer^, FLineLength);
Result := FLineLength;
FLineLength := 0;
Exit;
end;
{ User buffer is smaller, copy as much as possible }
-Move(FRcvdPtr^, Buffer, BufferSize);
+Move(FRcvdPtr^, Buffer^, BufferSize);
Result := BufferSize;
{ Move the end of line to beginning of buffer to be read the next time
}
Move(FRcvdPtr[BufferSize], FRcvdPtr^, FLineLength - BufferSize);
@@ -7897,13 +7897,13 @@
{ We already have received data into our internal buffer }
if FRcvdCnt = BufferSize then begin
{ User buffer is greater than received data, copy all and clear }
-Move(FRcvdPtr^, Buffer, FRcvdCnt);
+Move(FRcvdPtr^, Buffer^, FRcvdCnt);
Result := FRcvdCnt;
FRcvdCnt := 0;
Exit;
end;
{ User buffer is smaller, copy as much as possible }
-Move(FRcvdPtr^, Buffer, BufferSize);
+Move(FRcvdPtr^, Buffer^, BufferSize);
Result := BufferSize;
{ Then move remaining data to front og buffer 16/10/99 }
Move(FRcvdPtr[BufferSize], FRcvdPtr^, FRcvdCnt - BufferSize + 1);
Regards,
Tobias
Max Terentiev wrote:
Hi Arno,
I think all Move() calls in ICS code should be checked...
Bugs maybe not only in this place
---
With best regards, Max Terentiev.
Business Software Products.
AMS Development Team.
supp...@bspdev.com
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be