]> granicus.if.org Git - php/commitdiff
Bug #25314 ASCII mode transfers behaving like binary when initiated from windows.
authorSara Golemon <pollita@php.net>
Mon, 8 Sep 2003 22:32:33 +0000 (22:32 +0000)
committerSara Golemon <pollita@php.net>
Mon, 8 Sep 2003 22:32:33 +0000 (22:32 +0000)
ext/ftp/php_ftp.c

index 523f77b08045b496bc78204efb848b2525e35a6e..c286e6ed6550d5e115c83853e2fcabb4f79ac5aa 100644 (file)
@@ -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;