Fehler bei wxFTP::GetFileSize(..)
-
Hallo C++ Gemeinde,
heute mal keine Frage
sonder ein Post der vielleicht jemand bei einem Problem helfen kann.
Arbeite hier mit der wxWidgets-Version 2.8.10.Wenn man mit dem Befehl wxFTP::GetFileSize() versucht die Größe einer Online-Datei auszulesen, kann es zu einem Fehler bzw. einem Programmaustieg kommen. Nämlich dann, wenn der Server aus irgendwelchen Gründen einen 'Bad Status' zurück gibt, und den Befehl "SIZE filename" nicht akzeptiert, dann versucht die Funktion die Größe über die wxFTP::GetList()-Funktion zu finden
Leider ist der Index für diesen ArrayString nach dem durchlauf der obigen FOR-Schleife immer um ein Wert zuhoch, womit in der der Zeile weiter unten auf eine unbekannt Position zugegriffen wird und das Programm aussteigt.
Hier die Problemlösung aus dem Bug-Report :
Originaltext, zu finden unter in ftp .cpp in GetFileSize(). ca Line 950... bool foundIt = false; size_t i; for ( i = 0; !foundIt && i < fileList.Count(); i++ ) { foundIt = fileList[i].Upper().Contains(fileName.Upper()); } if ( foundIt ) { ...
Sind zu löschen und durch folgende Zeilen zu ersetzen:
... const size_t numFiles = fileList.size(); size_t i; for ( i= 0; i < fileList.GetCount(); i++) { if ( fileList[i].Upper().Contains(fileName.Upper()) ) break; } if ( i != numFiles ) { ...
Vielleicht hilft es ja dem einen oder anderen, wenn das Problem auftritt
BUG-Report ist schon geschrieben...Greez Ollow
-
Also in der Version 2.8.11. Punkt wurde der Bug bislang noch nicht geändert.
-
Weil ich gerade mal wieder über meinen eigenen Betrag gestolpert bin. Also ab wxWidgets Version 2.9. ist der Bug berichtigt....