Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: TidFTP in Thread

  Alt 11. Mai 2012, 06:48
Da ist noch ein Bug:
Delphi-Quellcode:
try
  FFTPClient.Connect;
except
  on E:Exception do begin
    // FMsg ist ein Zeiger (PChar)
    FMsg := PChar('Fehler bei der Verbindungsaufnahme ('+e.Message+')');
    Synchronize( OnMessage );
    FFTPClient.Disconnect;
    FFTPClient.Quit;
    exit;
    // auf was wird der Zeiger wohl zeigen, wenn die Methode verlassen wird?
    // -> auf ungültigen Speicher !!
    // und was passiert dann in der Procedure OnMessage?
    // -> ungültiger Speicher wird ausgelesen
    // weil ja zuerst "exit" ausgeführt wird und wegen dem Synchronize-Aufruf
    // die Procedure OnMessage danach abgearbeitet wird
  end;
end;
Nachtrag:
da sind ZWEI Bugs.
Der 2. Bug ist der Aufruf von
Delphi-Quellcode:
FFTPClient.Disconnect;
FFTPClient.Quit;
Wenn man eine aktive FTP-Verbindung beenden möchte schickt man zuerst QUIT und danach kommt der Disconnect.
Also ist die Reihenfolge falsch.
Aber, da der Connect ja sowieso nicht geklappt hat, ist es unlogisch die Verbindung beenden zu wollen.

Geändert von sx2008 (11. Mai 2012 um 06:55 Uhr)
  Mit Zitat antworten Zitat