cvs: php-src(PHP_5_2) /ext/ftp ftp.c
| From: | Nuno Lopes | Date: | Fri, 01 Dec 2006 16:34:43 +0000 |
| Subject: | cvs: php-src(PHP_5_2) /ext/ftp ftp.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-41815@lists.php.net to get a copy of this message | ||
nlopess Fri Dec 1 16:34:43 2006 UTC
Modified files: (Branch: PHP_5_2)
/php-src/ext/ftp ftp.c
Log:
fix bug #39458: ftp_nlist() returns false on empty dirs
http://cvs.php.net/viewvc.cgi/php-src/ext/ftp/ftp.c?r1=1.112.2.4&r2=1.112.2.4.2.1&diff_format=u
Index: php-src/ext/ftp/ftp.c
diff -u php-src/ext/ftp/ftp.c:1.112.2.4 php-src/ext/ftp/ftp.c:1.112.2.4.2.1
--- php-src/ext/ftp/ftp.c:1.112.2.4 Mon Apr 3 09:14:33 2006
+++ php-src/ext/ftp/ftp.c Fri Dec 1 16:34:43 2006
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: ftp.c,v 1.112.2.4 2006/04/03 09:14:33 tony2001 Exp $ */
+/* $Id: ftp.c,v 1.112.2.4.2.1 2006/12/01 16:34:43 nlopess Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -1614,10 +1614,15 @@
if (!ftp_putcmd(ftp, cmd, path)) {
goto bail;
}
- if (!ftp_getresp(ftp) || (ftp->resp != 150 && ftp->resp != 125)) {
+ if (!ftp_getresp(ftp) || (ftp->resp != 150 && ftp->resp != 125 &&
ftp->resp != 226)) {
goto bail;
}
+ /* some servers don't open a ftp-data connection if the directory is empty */
+ if (ftp->resp == 226) {
+ return ecalloc(1, sizeof(char**));
+ }
+
/* pull data buffer into tmpfile */
if ((data = data_accept(data, ftp TSRMLS_CC)) == NULL) {
goto bail;