Tk Library Source Code

View Ticket
Login
Ticket UUID: 3288977
Title: client hangs on bad multi-line server responses
Type: Bug Version: None
Submitter: szinck Created on: 2011-04-18 18:14:58
Subsystem: ftp Assigned To: andreas_kupries
Priority: 5 Medium Severity:
Status: Closed Last Modified: 2011-04-19 02:27:41
Resolution: Accepted Closed By: andreas_kupries
    Closed on: 2011-04-18 19:27:41
Description:
If the server doesn't speak strict RFC-959 when it comes to multi-line responses, it can cause the client to hang.

For example, this was causing Tcllib ftp code to have an infinite loop  and eat 100% cpu.

    RETR blah
    150 Opening BINARY mode data connection for blah (180 bytes).
    226 Transfer complete.
    QUIT
    221-You have transferred 180 bytes in 1 files.

    ^^^ notice no "221 Goodbye."

Most likely the network I was using was dropping the last couple of packets after the client said QUIT, that included the "221 Goodbye" response that the code was waiting for.

This is the same issue described in the latter half of 2813069. I couldn't upload files to it, so I created a new bug and have attached a patch.
User Comments: andreas_kupries added on 2011-04-19 02:27:41:

allow_comments - 1

Committed to CVS head. Bumped version to 2.4.10.

szinck added on 2011-04-19 01:14:59:

File Added - 409172: ftp-multiline-reply-infinite-loop.patch

Attachments: