Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

0 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Thanks "This won't matter for much longer since the next major release of ICS will cease support for compilers more than a few years old" You mean that you are about to drop Delphi 7 support ? What a bad news !
  2. Kyle_Katarn31

    Exception in TCustomSmtpClient.Destroy;

    No, never seen this but very often this kind of exception are "hidden" by Windows....
  3. Kyle_Katarn31

    Exception in TCustomSmtpClient.Destroy;

    Not possible. Random exception while running for a long time in ReactOs (far from my IDE)
  4. MaxInt or expected length to be copied (Length()-xxx)
  5. Kyle_Katarn31

    Exception in TCustomSmtpClient.Destroy;

    Exception : (dll/win32/kernel32/client/except.c:735) Delphi Exception at address: 0049F658 (dll/win32/kernel32/client/except.c:736) Exception-Object: 009CB4C4 (dll/win32/kernel32/client/except.c:737) Exception text: 955cb0 MAP file : 049F09C:{OverbyteIcsSmtpProt}constructor TCustomSmtpClient.Create(AOwner:TComponent); 049F2F8:{OverbyteIcsSmtpProt}destructor TCustomSmtpClient.Destroy; 049F398:{OverbyteIcsSmtpProt}procedure sub_0049F398(?:?; ?:?); 049F400:{OverbyteIcsSmtpProt}procedure sub_0049F400; 049F410:{OverbyteIcsSmtpProt}procedure sub_0049F410; 049F44C:{OverbyteIcsSmtpProt}procedure sub_0049F44C; 049F488:{OverbyteIcsSmtpProt}procedure sub_0049F488(?:?); 049F51C:{OverbyteIcsSmtpProt}procedure sub_0049F51C(?:?); 049F5A8:{OverbyteIcsSmtpProt}procedure sub_0049F5A8(?:?); 049F5D0:{OverbyteIcsSmtpProt}function sub_0049F5D0(?:?; ?:?):?; 049F634:{OverbyteIcsSmtpProt}procedure sub_0049F634(?:TCustomSmtpClient); 049F680:{OverbyteIcsSmtpProt}procedure sub_0049F680; 049F6A0:{OverbyteIcsSmtpProt}procedure sub_0049F6A0(?:?); 049F6C0:{OverbyteIcsSmtpProt}procedure sub_0049F6C0(?:?); 049F6E0:{OverbyteIcsSmtpProt}procedure sub_0049F6E0(?:?); 049F780:{OverbyteIcsSmtpProt}procedure sub_0049F780(?:TCustomSmtpClient; ?:?); 049F7A0:{OverbyteIcsSmtpProt}procedure sub_0049F7A0(?:?); 049F7FC:{OverbyteIcsSmtpProt}procedure sub_0049F7FC(?:?); 049FA30:{OverbyteIcsSmtpProt}procedure sub_0049FA30(?:?; ?:?); 049FE08:{OverbyteIcsSmtpProt}procedure sub_0049FE08(?:?); 049FED8:{OverbyteIcsSmtpProt}procedure sub_0049FED8(?:TCustomSmtpClient; ?:?; ?:AnsiString; ?:?; ?:?; ?:?; ?:?);
  6. Then argument to be filled with actual needed length
  7. Kyle_Katarn31

    Exception in TCustomSmtpClient.Destroy;

    Any clue or comment?
  8. Just a comment. No problem. My problem is on the assert in the other thread
  9. Ok. So at least the Copy enhancement to be considered ?
  10. Yes, right. Anyway : TempoStream.Free shall be called rather than TempoStream.Destroy
  11. That's exactly my point.
  12. Some observations : { V8.65 look for absolute URL sent by proxy } I := Pos('://', FPath); if (I = 4) or (I = 5) then begin FPath := Copy(FPath, I + 3, 99999); // strip http:// I := Pos('/', FPath); // start of path if (I > 1) then FPath := Copy(FPath, I, 999999); // strip host end; Magic numbers 99999 and 999999 to be replaced with actual expected FPath extract length ? else begin { see if we have access to file, but don't read it yet } TempStream := TFileStream.Create(FDocument, fmOpenRead + fmShareDenyWrite); TempStream.Destroy; OK := TRUE; end; Destroy is called even if .Create fails and the global code section is a nonsense as always returns OK = TRUE whatever the access rights TempoStream.Free shall be called rather than TempoStream.Destroy
  13. Kyle_Katarn31

    Exception in TCustomSmtpClient.Destroy;

    Code comes from ICS TCustomSmtpClient.Destroy; Compiled with D7 Not fully reproductible but there might be something rotten here. anyway I agree that simply calling .free or FreeAndNil would be a wiser option here
  14. Hello When running a software of mine in ReactOS i'm getting rare Delphi exception "Delphi Exception at address: 0049F658". Using IDR I identified that this corresponds to TCustomSmtpClient.Destroy; Looking at the code i'm surprised to see that the "safe destroy" pattern is used for FHdrLines and FAuthTypesSupported but NOT for FMailMessage and FRcptName, while all 4 of them are TStrings created in the constructor. if Assigned(FHdrLines) then begin FHdrLines.Destroy; FHdrLines := nil; end; if Assigned(FAuthTypesSupported) then begin FAuthTypesSupported.Destroy; FAuthTypesSupported := nil; end; FMailMessage.Destroy; FRcptName.Destroy; I would have simply expected FHdrLines.Free; FAuthTypesSupported.Free; FMailMessage.Free; FRcptName.Free; (or FreeAndNil(variable) ) Is it intentionnal ? same in TFingerCli.Destroy; TDnsQuery.Destroy; TCustomPop3Cli.Destroy; Similar issue with TFormDataAnalyser.PartSaveDataToFile, TFormDataItem.SaveToFile, TIcsFtpMulti.IntDownOne, OverbyteIcsFtpMultiW, OverbyteIcsFtpSrv, OverbyteIcsFtpSrvW where .Destroy is called while .Free would be expected Same for OverbyteIcsFtpCli.pas (3 occurences of FModeZStream.Destroy; instead of FModeZStream.Free;) ... global check to be done.