Incorrect "ALLO" command handling, can't upload file
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
proftpd-dfsg (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
File cannot be uploaded with error "552 xxxxxx: No space left on device", but there are enough free space to upload file:
lftp ftp@localhost:
---> TYPE I
<--- 200 Type set to I
---> PASV
<--- 227 Entering Passive Mode (127,0,
---- Connecting data socket to (127.0.0.1) port 45812
---> ALLO 4559208448
<--- 552 4559208448: No space left on device
---> STOR 111.file
---> ABOR
put: Access failed: 552 4559208448: No space left on device (111.file)
$ df -k /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/
# proftpd debug level 5 log fragment:
2014-08-13 20:49:57,425 host proftpd[17989] host (localhost[
2014-08-13 20:49:57,425 host proftpd[17989] host (localhost[
# Versions
$ lsb_release -rd
Description: Ubuntu 14.04.1 LTS
Release: 14.04
$ apt-cache policy proftpd-basic
proftpd-basic:
Installed: 1.3.5~rc3-
Candidate: 1.3.5~rc3-
Version table:
*** 1.3.5~rc3-
500 http://
100 /var/lib/
###
Problem caused by following code:
http://
2371: res = pr_fs_getsize2(
.....
2381: if (requested_sz > avail_sz) {
But function pr_fs_getsize2 retunrs avail_sz is in kilobytes, while requested_sz in bytes.
I believe this has been addressed upstream via:
http:// bugs.proftpd. org/show_ bug.cgi? id=4046
and, on a related note:
http:// bugs.proftpd. org/show_ bug.cgi? id=4094