]> git.ipfire.org Git - thirdparty/squid.git/commit
Fixed "ftpReadTransferDone: Got code 426 after reading data" SEGV
authorwessels <>
Mon, 23 Apr 2007 23:50:49 +0000 (23:50 +0000)
committerwessels <>
Mon, 23 Apr 2007 23:50:49 +0000 (23:50 +0000)
commit4e849646bed4c82d9b9ddfda961667edad1b091e
treefe70be2d2848bbaac92d0b3c1a7c4edb7e8efdb7
parent35f269984076c6649d5fed3e52592b60c2671e6b
Fixed "ftpReadTransferDone: Got code 426 after reading data" SEGV

Whenever ftpReadTransferDone got an unexpected status code, it would
also SEGV.  It happened because the FtpStateData object was destroyed
in the middle of the dataRead method, just before the final call to
processReplyBody.

A workaround seems to be to call scheduleReadControlReply with
buffered_ok=0 so that the object isn't destroyed within the
same call sequence.

I was tempted to put a return after the dataComplete call in
ftpReadTransferDone so that we won't call processReplyBody
when len == 0, but I'm concerned that may break things when ICAP
is in use.
src/ftp.cc