I think a C compiler would complain if you pass a char instead of char* in compile time. That's what I meant.
On Sun, Nov 1, 2009 at 8:07 PM, Arno Garrels <arno.garr...@gmx.de> wrote: > Fastream Technologies wrote: > > It is rather strange Delphi compiler does not give error on this! C > > compiler would I think. > > It effects SOCKS connections only. It isn't a compiler specific bug > but timing related. The buggy code wasn't called at all until I set a > break point in TCustomSocksWSocket.TriggerDataAvailable, tested with > TSmtpCli. That's probably why nobody hit it before. > > I applied the posted fix to the source base of both V6 and V7. > It will be available with the next nightly built snapshot > downloadable at: > http://wiki.overbyte.be/wiki/index.php/FAQ#How_to_get_ICS > > -- > Arno Garrels > > > > > > > On Sun, Nov 1, 2009 at 12:29 PM, Max Terentiev <maxterent...@mail.ru> > > wrote: > > > >> Hi Arno, > >> > >> Yes, it's helps ! But I will perform some heavy tests for sure... > >> > >> Thanx for the fix !!! > >> > >> > >> --- > >> With best regards, Max Terentiev. > >> Business Software Products. > >> AMS Development Team. > >> supp...@bspdev.com > >> > >> > >> ----- Original Message ----- From: "Arno Garrels" > >> <arno.garr...@gmx.de> To: "ICS support mailing" <twsocket@elists.org> > >> Sent: Sunday, November 01, 2009 12:01 PM > >> Subject: Re: [twsocket] Serious bug in TWSocket (AV or > >> bufferoverflow)Pleasehelp ! > >> > >> > >> > >> Hello Max, > >>> > >>> I was able to reproduce the AV! > >>> Please try this change: > >>> > >>> function TCustomSocksWSocket.DoRecv() > >>> [..] > >>> {$IFDEF WIN32} > >>> //Move(FRcvBuf[FSocksRcvdPtr], Buffer, FSocksRcvdCnt); // ==> > >>> Move(FRcvBuf[FSocksRcvdPtr], Buffer^, FSocksRcvdCnt); // <== > >>> {$ENDIF} > >>> Result := FSocksRcvdCnt; > >>> FSocksRcvdCnt := 0; > >>> Exit; > >>> end; > >>> { User buffer is smaller, copy as much as possible } > >>> {$IFDEF CLR} > >>> for I := 0 to BufferSize - 1 do > >>> Buffer[I] := FRcvBuf[FSocksRcvdPtr + I]; > >>> {$ENDIF} > >>> {$IFDEF WIN32} > >>> //Move(FRcvBuf[FSocksRcvdPtr], Buffer, BufferSize); // ==> > >>> Move(FRcvBuf[FSocksRcvdPtr], Buffer^, BufferSize); // <== > >>> {$ENDIF} > >>> > >>> Does that help? > >>> > >>> -- > >>> Arno Garrels > >>> > >>> > >>> -- > >>> 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 > >>> > >>> > >> -- > >> 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 > -- > 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 > -- 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