diff options
author | Nikita Popov <nikic@php.net> | 2013-12-30 13:46:55 +0100 |
---|---|---|
committer | Nikita Popov <nikic@php.net> | 2013-12-30 13:53:12 +0100 |
commit | 3b6afb1bd63ef92f9914867f04bedeea90e21789 (patch) | |
tree | dad41e7a8218d9924355b80e7f4051c25c15d8be /ext/ftp/php_ftp.c | |
parent | 8e5048f9fb93846846e82c42c39f1759c97a73c2 (diff) | |
download | php-git-3b6afb1bd63ef92f9914867f04bedeea90e21789.tar.gz |
Fix leak caused by fix to bug #65667
ftp->stream is now closed in the ftp resource dtor.
Diffstat (limited to 'ext/ftp/php_ftp.c')
-rw-r--r-- | ext/ftp/php_ftp.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/ftp/php_ftp.c b/ext/ftp/php_ftp.c index 21e13ea460..99f3808c38 100644 --- a/ext/ftp/php_ftp.c +++ b/ext/ftp/php_ftp.c @@ -963,6 +963,7 @@ PHP_FUNCTION(ftp_nb_get) if ((ret = ftp_nb_get(ftp, outstream, remote, xtype, resumepos TSRMLS_CC)) == PHP_FTP_FAILED) { php_stream_close(outstream); + ftp->stream = NULL; VCWD_UNLINK(local); php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ftp->inbuf); RETURN_LONG(PHP_FTP_FAILED); @@ -970,6 +971,7 @@ PHP_FUNCTION(ftp_nb_get) if (ret == PHP_FTP_FINISHED){ php_stream_close(outstream); + ftp->stream = NULL; } RETURN_LONG(ret); @@ -1003,6 +1005,7 @@ PHP_FUNCTION(ftp_nb_continue) if (ret != PHP_FTP_MOREDATA && ftp->closestream) { php_stream_close(ftp->stream); + ftp->stream = NULL; } if (ret == PHP_FTP_FAILED) { @@ -1214,6 +1217,7 @@ PHP_FUNCTION(ftp_nb_put) if (ret != PHP_FTP_MOREDATA) { php_stream_close(instream); + ftp->stream = NULL; } if (ret == PHP_FTP_FAILED) { |