file uploaded via SSL is truncated

I'm running a server (mayastudios.de) with ProFTPd which is configured to only accept connections via SSL/TSL. Now I wanted to upload a binary file but it doesn't work correctly. SmartFTP isn't uploading the whole file but truncating it somewhere near the end of the file. So the resulting file is smaller than the original file. (Comparing these two file binary [using "Tiny Hexer"] shows that there aren't any differences between them - except their size).

First I thought it may be an error of ProFTPd but then I used an Linux command line ftp client (lftp) and there the upload worked fine. No truncating occurs.

So I think it's an bug of SmartFTP. (The amount of missing bytes isn't constant. One file I uploaded missed only 5 bytes, another missed about 1000 bytes)


The connection is configured as followed:
- Protocol: FTP over SSL Explicit
- non-anonymus user
- Connection->SSL->AUTH Mode: the problem occurs with every option

The complete log:



    SmartFTP v1.5.988.35



    Resolving host name "mayastudios.de"



    Connecting to 62.75.138.18 Port: 21



    Connected to mayastudios.de.



220 Willkommen. FTP Server bereit.



    AUTH TLS



234 AUTH TLS successful



    Connected. Exchanging encryption keys...



    Session Cipher: 128 bit RC4



    TLS encrypted session established.



    PBSZ 0



200 PBSZ 0 successful



    USER wwwrun



331 Password required for wwwrun.



    PASS (hidden)



230 User wwwrun logged in.



    SYST



215 UNIX Type: L8



    FEAT



211-Features:



 MDTM



 REST STREAM



 SIZE



 AUTH TLS



 PBSZ



 PROT



211 End



    PWD



257 "/" is current directory.



    TYPE I



200 Type set to I



    PROT P



200 Protection set to Private



    PASV



227 Entering Passive Mode (62,75,138,18,136,162).



    Opening data connection to 62.75.138.18 Port: 34978



    LIST -aL



    Connected. Exchanging encryption keys...



150 Opening ASCII mode data connection for file list



    Session Cipher: 128 bit RC4



    TLS encrypted session established.



    720 bytes transferred. (4,50 KB/s) (156 ms)



226 Transfer complete.



    CWD /www



250 CWD command successful



    PWD



257 "/www" is current directory.



    PASV



227 Entering Passive Mode (62,75,138,18,136,207).



    Opening data connection to 62.75.138.18 Port: 35023



    LIST -aL



    Connected. Exchanging encryption keys...



150 Opening ASCII mode data connection for file list



    Session Cipher: 128 bit RC4



    TLS encrypted session established.



    382 bytes transferred. (2,64 KB/s) (141 ms)



226 Transfer complete.



    SIZE arche.jpg



213 30720



    MDTM arche.jpg



213 20050710171111



    PASV



227 Entering Passive Mode (62,75,138,18,136,215).



    Opening data connection to 62.75.138.18 Port: 35031



    STOR arche.jpg



    Connected. Exchanging encryption keys...



150 Opening BINARY mode data connection for arche.jpg



    Session Cipher: 128 bit RC4



    TLS encrypted session established.



    Transfer Timeout (20s). Closing data connection.



    31392 bytes transferred. (1,46 KB/s) (00:00:20)



226 Transfer complete.



    SIZE arche.jpg



213 30720



    File size mismatch.



    PASV



227 Entering Passive Mode (62,75,138,18,137,8).



    Opening data connection to 62.75.138.18 Port: 35080



    LIST -aL



    Connected. Exchanging encryption keys...



150 Opening ASCII mode data connection for file list



    Session Cipher: 128 bit RC4



    TLS encrypted session established.



    382 bytes transferred. (2,64 KB/s) (141 ms)



226 Transfer complete.



    Transfer successful.




System-Info:



+- System -----------------------------



Microsoft Windows XP Professional 



Service Pack 2 (Build 2600)







CPU Speed         : 2087 MHz



Total Memory      : 523760 KB



Free Memory       : 144592 KB







+- SmartFTP ---------------------------



Version           : 1.5.988.35



Time Stamp        : 2005-07-09 00:44:42







+- Application DLL --------------------



controls.dll      : 1.6.988.35



sfFTPLib.dll      : 1.0.1.40



SmartHook.dll     : 1.0.2.1







+- Language ---------------------------



SmartFTP.exe      : 1.5.988.35







+- System DLL -------------------------



shell32.dll       : 6.00.2900.2620 (xpsp_sp2_gdr.050225-1820)



shlwapi.dll       : 6.00.2900.2668 (xpsp_sp2_gdr.050430-1553)



comctl32.dll      : 6.0 (xpsp_sp2_rtm.040803-2158)



riched20.dll      : 5.30.23.1221



schannel.dll      : 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)







+- Internet Explorer ------------------



Version           : 6.0.2900.2180







+- Winsock ----------------------------



Winsock           : 2.2




There's also a strange behavior which may be connected to this bug: When the upload is finished, SmartFTP doesn't do nothing for about 20 seconds. After this period of time SmartFTP says "Transfer Timeout (20s). Closing data connection." (mentioned in the log above)

Ok - I hope that these information are enough to reproduce the error. If not, please ask.

Thanks
Manski

Thanks for the report.

This problem has actually been introduced in 1.5.988.35 and fixed in 1.5.988.36.

Please install the latest build from:
https://www.smartftp.com/download

Thanks
-Mat

Maybe I should notice that an upload with a normal FTP connection (not encrypted) works fine.

For an comparison here are the original file (.orig.jpg) and the "ssl uploaded" file (.upload.jpg):

http://www.mayastudios.de/arche.orig.jpg
http://www.mayastudios.de/arche.upload.jpg
http://www.mayastudios.de/nemo.orig.jpg
http://www.mayastudios.de/nemo.upload.jpg

What FTP server software are you running on the server?

-Mat

I'm using ProFTPd (see first entry) version 1.2.10 which is the newest (although it was released in September 2004 - see [url="http://www.proftpd.org)"]http://www.proftpd.org)[/url]

The user reported that the latest bulid fixed the problem.

-Mat