On 5/17/25 08:38, 更好的自己 wrote:
Hi Maintainers,

ftpget tool use with get command like: "ftpget 192.168.0.123 /data/test.txt 
test.txt" will exit with error code 1 instead of 0.
I check the code flow in "ftp_line" function, it will enter "error_exit_raw" because 
"rc != must (must==226)".

Yeah, I saw that on github. (Well your first one line patch anyway, I didn't look at the second one.)

You didn't give me a reproduction sequence, so I used busybox's ftp server: I did a "make clean defconfig; make" in busybox and then ran "./busybox tcpsvd -vE 127.0.0.1 9876 ./busybox ftpd -A $PWD" in the busybox source directory (more or less as ./busybox ftpd --help suggested, except using a high port so nothing had to be root), and then in another tab I built toybox ftpget and did:

mkdir sub; cd sub
../ftpget -l -p 9876 127.0.0.1 .
../ftpget -p 9876 127.0.0.1 README

The first listed the directory contents, the second fetched a file, and the sha1sum matched. Without your patch. (Which is why it got checked in, I did test it.)

But you're right it produced error messages and exited with a nonzero error code. The problem is ftp_line() shouldn't have a must=-1 case to skip reading the reply. There's always a reply line to fetch and if we don't it queues up and gets out of sync.

Hongsheng Peng

Ah, thanks for the name to go with the bug report.

Commit e5b284ed9e17

Rob
_______________________________________________
Toybox mailing list
Toybox@lists.landley.net
http://lists.landley.net/listinfo.cgi/toybox-landley.net

Reply via email to