pollita Mon Sep 8 18:32:34 2003 EDT
Modified files: (Branch: PHP_4_3)
/php-src/ext/ftp php_ftp.c
Log:
Bug #25314 ASCII mode transfers behaving like binary when initiated from windows.
Index: php-src/ext/ftp/php_ftp.c
diff -u php-src/ext/ftp/php_ftp.c:1.74.2.12 php-src/ext/ftp/php_ftp.c:1.74.2.13
--- php-src/ext/ftp/php_ftp.c:1.74.2.12 Thu Aug 28 15:18:55 2003
+++ php-src/ext/ftp/php_ftp.c Mon Sep 8 18:32:33 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_ftp.c,v 1.74.2.12 2003/08/28 19:18:55 iliaa Exp $ */
+/* $Id: php_ftp.c,v 1.74.2.13 2003/09/08 22:32:33 pollita Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -603,15 +603,15 @@
}
if (ftp->autoseek && resumepos) {
- if (PG(safe_mode) && (!php_checkuid(local, "rb+",
CHECKUID_CHECK_MODE_PARAM))) {
+ if (PG(safe_mode) && (!php_checkuid(local, mode == FTPTYPE_ASCII ?
"rt+" : "rb+", CHECKUID_CHECK_MODE_PARAM))) {
RETURN_FALSE;
}
- outstream = php_stream_fopen(local, "rb+", NULL);
+ outstream = php_stream_fopen(local, mode == FTPTYPE_ASCII ? "rt+" :
"rb+", NULL);
if (outstream == NULL) {
- if (PG(safe_mode) && (!php_checkuid(local, "wb",
CHECKUID_CHECK_MODE_PARAM))) {
+ if (PG(safe_mode) && (!php_checkuid(local, mode ==
FTPTYPE_ASCII ? "wt" : "wb", CHECKUID_CHECK_MODE_PARAM))) {
RETURN_FALSE;
}
- outstream = php_stream_fopen(local, "wb", NULL);
+ outstream = php_stream_fopen(local, mode == FTPTYPE_ASCII ?
"wt" : "wb", NULL);
}
if (outstream != NULL) {
/* if autoresume is wanted seek to end */
@@ -623,10 +623,10 @@
}
}
} else {
- if (PG(safe_mode) && (!php_checkuid(local, "wb",
CHECKUID_CHECK_MODE_PARAM))) {
+ if (PG(safe_mode) && (!php_checkuid(local, mode == FTPTYPE_ASCII ?
"wt" : "wb", CHECKUID_CHECK_MODE_PARAM))) {
RETURN_FALSE;
}
- outstream = php_stream_fopen(local, "wb", NULL);
+ outstream = php_stream_fopen(local, mode == FTPTYPE_ASCII ? "wt" :
"wb", NULL);
}
if (outstream == NULL) {
@@ -674,15 +674,15 @@
}
if (ftp->autoseek && resumepos) {
- if (PG(safe_mode) && (!php_checkuid(local, "rb+",
CHECKUID_CHECK_MODE_PARAM))) {
+ if (PG(safe_mode) && (!php_checkuid(local, mode == FTPTYPE_ASCII ?
"rt+" : "rb+", CHECKUID_CHECK_MODE_PARAM))) {
RETURN_FALSE;
}
- outstream = php_stream_fopen(local, "rb+", NULL);
+ outstream = php_stream_fopen(local, mode == FTPTYPE_ASCII ? "rt+" :
"rb+", NULL);
if (outstream == NULL) {
- if (PG(safe_mode) && (!php_checkuid(local, "wb",
CHECKUID_CHECK_MODE_PARAM))) {
+ if (PG(safe_mode) && (!php_checkuid(local, mode ==
FTPTYPE_ASCII ? "wt" : "wb", CHECKUID_CHECK_MODE_PARAM))) {
RETURN_FALSE;
}
- outstream = php_stream_fopen(local, "wb", NULL);
+ outstream = php_stream_fopen(local, mode == FTPTYPE_ASCII ?
"wt" : "wb", NULL);
}
if (outstream != NULL) {
/* if autoresume is wanted seek to end */
@@ -694,10 +694,10 @@
}
}
} else {
- if (PG(safe_mode) && (!php_checkuid(local, "wb",
CHECKUID_CHECK_MODE_PARAM))) {
+ if (PG(safe_mode) && (!php_checkuid(local, mode == FTPTYPE_ASCII ?
"wt" : "wb", CHECKUID_CHECK_MODE_PARAM))) {
RETURN_FALSE;
}
- outstream = php_stream_fopen(local, "wb", NULL);
+ outstream = php_stream_fopen(local, mode == FTPTYPE_ASCII ? "wt" :
"wb", NULL);
}
if (outstream == NULL) {
@@ -881,11 +881,11 @@
if (php_check_open_basedir(local TSRMLS_CC)) {
RETURN_FALSE;
}
- if (PG(safe_mode) && (!php_checkuid(local, "rb", CHECKUID_CHECK_MODE_PARAM))) {
+ if (PG(safe_mode) && (!php_checkuid(local, mode == FTPTYPE_ASCII ? "rt" :
"rb", CHECKUID_CHECK_MODE_PARAM))) {
RETURN_FALSE;
}
- instream = php_stream_fopen(local, "rb", NULL);
+ instream = php_stream_fopen(local, mode == FTPTYPE_ASCII ? "rt" : "rb", NULL);
if (instream == NULL) {
RETURN_FALSE;
@@ -943,11 +943,11 @@
if (php_check_open_basedir(local TSRMLS_CC)) {
RETURN_FALSE;
}
- if (PG(safe_mode) && (!php_checkuid(local, "rb", CHECKUID_CHECK_MODE_PARAM))) {
+ if (PG(safe_mode) && (!php_checkuid(local, mode == FTPTYPE_ASCII ? "rt" :
"rb", CHECKUID_CHECK_MODE_PARAM))) {
RETURN_FALSE;
}
- instream = php_stream_fopen(local, "rb", NULL);
+ instream = php_stream_fopen(local, mode == FTPTYPE_ASCII ? "rt" : "rb", NULL);
if (instream == NULL) {
RETURN_FALSE;
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php