From: Sara Golemon Date: Mon, 8 Sep 2003 22:32:33 +0000 (+0000) Subject: Bug #25314 ASCII mode transfers behaving like binary when initiated from windows. X-Git-Tag: php-4.3.4RC1~90 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9761587fc653b619a19a758f2da855a350f3c159;p=php Bug #25314 ASCII mode transfers behaving like binary when initiated from windows. --- diff --git a/ext/ftp/php_ftp.c b/ext/ftp/php_ftp.c index 523f77b080..c286e6ed65 100644 --- a/ext/ftp/php_ftp.c +++ b/ext/ftp/php_ftp.c @@ -603,15 +603,15 @@ PHP_FUNCTION(ftp_get) } 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 @@ PHP_FUNCTION(ftp_get) } } } 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 @@ PHP_FUNCTION(ftp_nb_get) } 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 @@ PHP_FUNCTION(ftp_nb_get) } } } 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 @@ PHP_FUNCTION(ftp_put) 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 @@ PHP_FUNCTION(ftp_nb_put) 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;