Re: [twsocket] Fw: Bug in OverbyteIcsSmtpProt v6

2006-07-24 Thread Arno Garrels
Francois PIETTE wrote:
> There is a memory leak in the function "PrepareEmail" in the file
> "OverbyteIcsSmtpProt.pas", at line 3376:
> 
> if FMailMessage.GetText^ <> #0 then
> 
> this function allocate some meory which must be freed using
> StrDispose. This 
> is not done in the function.

Correct, GetText is called even twice. So if we do not want to use
property TStrings.Text as well as a new String variable, a 
variable of type PChar is required that can be freed.

> It was easy to fix: I replaced the offending line by:
> if FMailMessage.Text <> '' then

That was my original code, later changed by Francois, probably in 
order to make it Delphi 1 compatible which doesn't know of
TStrings.Text, but why? ICS V6 is for D7 upwards, isn't it? 
Anyway, since accessing TStrings.Text is slow we could copy the
FMailMessage.Text to a new String variable once in 
TSmtpCli.PrepareEMail and the read from this variable in
TSmtpCli.TriggerGetData. An alternate would be to 
work with a PChar to the message text, but that would require
change of some coding functions too currently working with Strings
only.

What do you think?

---
Arno Garrels [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html


> 
> Now FastMM 4.68 do not report any memory leak.
> I see in the source code that the offending line was already replacing
> another one. Maybe you have a better solution than mine.
> 
> Contribute to the SSL Effort. Visit
> http://www.overbyte.be/eng/ssl.html 
> --
> [EMAIL PROTECTED]
> http://www.overbyte.be
> 
> 
> 
> - Original Message -
> From: "Francois PIETTE" <[EMAIL PROTECTED]>
> To: 
> Sent: Thursday, July 20, 2006 5:59 PM
> Subject: [twsocket] Fw: Bug dans OverbyteIcsSmtpProt v6
> 
> 
>> 
>>> Dans la derniere version beta que je viens tout juste de prendre sur
>>> votre
>>> site, il y a une perde de mémoire dans la fonction "PrepareEmail" du
>>> fichier
>>> "OverbyteIcsSmtpProt.pas", situé a la ligne 3376:
>>> 
>>> if FMailMessage.GetText^ <> #0 then
>>> 
>>> Cette fonction alloue de la mémoire et celle-ci doit être libérée
>>> avec StrDispose(), ce qui n'est pas fait dans la fonction.
>>> 
>>> Facile à corriger, j'ai remplacé la ligne par:
>>> 
>>> if FMailMessage.Text <> '' then
>>> 
>>> et FastMM 4.68 ne rapporte plus aucune perte de mémoire. Je vois
>>> dans la source que la ligne fautive en remplace une autre... Peut-
>>> être aurez-vous une meilleure solution que la mienne?
>>> 
>>> Merci pour ICS!
>> 
>> --
>> To unsubscribe or change your settings for TWSocket mailing list
>> please goto http://www.elists.org/mailman/listinfo/twsocket
>> Visit our website at http://www.overbyte.be
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] Fw: Bug in OverbyteIcsSmtpProt v6

2006-07-23 Thread Francois PIETTE
Translation of the message which was sent by a french ICS user who - 
strangely - doesn't want to be known:

There is a memory leak in the function "PrepareEmail" in the file 
"OverbyteIcsSmtpProt.pas", at line 3376:

if FMailMessage.GetText^ <> #0 then

this function allocate some meory which must be freed using StrDispose. This 
is not done in the function.

It was easy to fix: I replaced the offending line by:
if FMailMessage.Text <> '' then

Now FastMM 4.68 do not report any memory leak.
I see in the source code that the offending line was already replacing 
another one. Maybe you have a better solution than mine.

Contribute to the SSL Effort. Visit http://www.overbyte.be/eng/ssl.html
--
[EMAIL PROTECTED]
http://www.overbyte.be



- Original Message - 
From: "Francois PIETTE" <[EMAIL PROTECTED]>
To: 
Sent: Thursday, July 20, 2006 5:59 PM
Subject: [twsocket] Fw: Bug dans OverbyteIcsSmtpProt v6


>
>> Dans la derniere version beta que je viens tout juste de prendre sur 
>> votre
>> site, il y a une perde de mémoire dans la fonction "PrepareEmail" du
>> fichier
>> "OverbyteIcsSmtpProt.pas", situé a la ligne 3376:
>>
>> if FMailMessage.GetText^ <> #0 then
>>
>> Cette fonction alloue de la mémoire et celle-ci doit être libérée avec
>> StrDispose(), ce qui n'est pas fait dans la fonction.
>>
>> Facile à corriger, j'ai remplacé la ligne par:
>>
>> if FMailMessage.Text <> '' then
>>
>> et FastMM 4.68 ne rapporte plus aucune perte de mémoire. Je vois dans la
>> source que la ligne fautive en remplace une autre... Peut-être aurez-vous
>> une meilleure solution que la mienne?
>>
>> Merci pour ICS!
>
> -- 
> To unsubscribe or change your settings for TWSocket mailing list
> please goto http://www.elists.org/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be 

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be