#48607 [Ver]: fwrite() doesn't check reply from ftp server before exiting

From: Date: Tue, 25 Aug 2009 17:45:19 +0000
Subject: #48607 [Ver]: fwrite() doesn't check reply from ftp server before exiting
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-141509@lists.php.net to get a copy of this message
 ID:               48607
 Updated by:       sjoerd@php.net
 Reported By:      karachi at mail dot ru
 Status:           Verified
 Bug Type:         Streams related
 Operating System: FreeBSD
 PHP Version:      5.2.10
 New Comment:

The solution may be something like this, although this may break things
when the current transaction is not about to send a 226 Transfer
complete.

Index: ext/standard/ftp_fopen_wrapper.c
===================================================================
--- ext/standard/ftp_fopen_wrapper.c	(revision 287652)
+++ ext/standard/ftp_fopen_wrapper.c	(working copy)
@@ -97,7 +97,16 @@
  */
 static int php_stream_ftp_stream_close(php_stream_wrapper *wrapper,
php_stream *stream TSRMLS_DC)
 {
+	int result;
+	char tmp_line[512];
+
 	php_stream *controlstream = (php_stream *)stream->wrapperdata;
+
+	result = GET_FTP_RESULT(controlstream);
+	if (result != 226 && result != 250) {
+		// Maybe throw a warning?
+		return 1;
+	}
 	
 	if (controlstream) {
 		php_stream_write_string(controlstream, "QUIT\r\n");



Previous Comments:
------------------------------------------------------------------------

[2009-08-25 16:33:02] sjoerd@php.net

I could reproduce the QUIT before the transfer being complete.

FTP	Request: STOR /a.php
FTP	Response: 150 Opening BINARY mode data connection for /a.php
FTP	Request: QUIT
FTP	Response: 226 Transfer complete

------------------------------------------------------------------------

[2009-08-25 08:28:23] sjoerd@php.net

You can use a pastebin or e-mail it to sjoerd-php at linuxonly dot nl.

------------------------------------------------------------------------

[2009-08-18 16:24:58] karachi at mail dot ru

I mean I captured data but I can't attach them to the bug

------------------------------------------------------------------------

[2009-08-18 16:23:58] karachi at mail dot ru

Where can I save captured ftp data?

------------------------------------------------------------------------

[2009-08-13 01:00:01] php-bugs at lists dot php dot net

No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/48607

-- 
Edit this bug report at http://bugs.php.net/?id=48607&edit=1



Thread (14 messages)

« previous php.bugs (#141509) next »