Fastream Technologies wrote:
> I think a C compiler would complain if you pass a char instead of
> char* in compile time. That's what I meant.

Look at the declaration of Move() that makes it clear.

--
Arno Garrels


> 
> 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

Reply via email to