[PHP-CVS] svn: /php/php-src/branches/ PHP_5_2/configure.in PHP_5_2/ext/standard/file.c PHP_5_2/main/SAPI.c PHP_5_2/main/SAPI.h PHP_5_2/main/rfc1867.c PHP_5_3/configure.in PHP_5_3/ext/standard/file.c P

2010-03-18 Thread Andrei Zmievski
andrei   Thu, 18 Mar 2010 21:07:38 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=296358

Log:
Fix a few problems with large (2G-4G) file uploads. Added
--enable-large-uploads-fix switch because one change was in SAPI.h structure.

Changed paths:
U   php/php-src/branches/PHP_5_2/configure.in
U   php/php-src/branches/PHP_5_2/ext/standard/file.c
U   php/php-src/branches/PHP_5_2/main/SAPI.c
U   php/php-src/branches/PHP_5_2/main/SAPI.h
U   php/php-src/branches/PHP_5_2/main/rfc1867.c
U   php/php-src/branches/PHP_5_3/configure.in
U   php/php-src/branches/PHP_5_3/ext/standard/file.c
U   php/php-src/branches/PHP_5_3/main/SAPI.c
U   php/php-src/branches/PHP_5_3/main/SAPI.h
U   php/php-src/branches/PHP_5_3/main/rfc1867.c

Modified: php/php-src/branches/PHP_5_2/configure.in
===
--- php/php-src/branches/PHP_5_2/configure.in	2010-03-18 19:42:55 UTC (rev 296357)
+++ php/php-src/branches/PHP_5_2/configure.in	2010-03-18 21:07:38 UTC (rev 296358)
@@ -896,6 +896,12 @@
   AC_MSG_RESULT([using system default])
 fi

+PHP_ARG_ENABLE(large-uploads-fix, whether to enable large files (2G-4G) uploads fix,
+[  --enable-large-uploads-fix Enable large files (2G-4G) uploads fix], no, no)
+if test $PHP_LARGE_UPLOADS_FIX = yes; then
+	AC_DEFINE(HAVE_LARGE_UPLOADS_FIX, 1, [Whether to enable large files (2G-4G) uploads fix])
+fi
+
 divert(5)

 dnl ## In diversion 5 we check which extensions should be compiled.

Modified: php/php-src/branches/PHP_5_2/ext/standard/file.c
===
--- php/php-src/branches/PHP_5_2/ext/standard/file.c	2010-03-18 19:42:55 UTC (rev 296357)
+++ php/php-src/branches/PHP_5_2/ext/standard/file.c	2010-03-18 21:07:38 UTC (rev 296358)
@@ -579,7 +579,8 @@
 	char *filename;
 	int filename_len;
 	zval *data;
-	int numbytes = 0;
+	size_t numbytes = 0;
+	int result = SUCCESS;
 	long flags = 0;
 	zval *zcontext = NULL;
 	php_stream_context *context = NULL;
@@ -622,7 +623,7 @@
 		case IS_RESOURCE: {
 			size_t len;
 			if (php_stream_copy_to_stream_ex(srcstream, stream, PHP_STREAM_COPY_ALL, len) != SUCCESS) {
-numbytes = -1;
+result = FAILURE;
 			} else {
 numbytes = len;
 			}
@@ -640,7 +641,7 @@
 numbytes = php_stream_write(stream, Z_STRVAL_P(data), Z_STRLEN_P(data));
 if (numbytes != Z_STRLEN_P(data)) {
 	php_error_docref(NULL TSRMLS_CC, E_WARNING, Only %d of %d bytes written, possibly out of free disk space, numbytes, Z_STRLEN_P(data));
-	numbytes = -1;
+	result = FAILURE;
 }
 			}
 			break;
@@ -666,7 +667,7 @@
 			} else {
 php_error_docref(NULL TSRMLS_CC, E_WARNING, Only %d of %d bytes written, possibly out of free disk space,  bytes_written, Z_STRLEN_PP(tmp));
 			}
-			numbytes = -1;
+			result = FAILURE;
 			break;
 		}
 	}
@@ -683,19 +684,19 @@
 	numbytes = php_stream_write(stream, Z_STRVAL(out), Z_STRLEN(out));
 	if (numbytes != Z_STRLEN(out)) {
 		php_error_docref(NULL TSRMLS_CC, E_WARNING, Only %d of %d bytes written, possibly out of free disk space, numbytes, Z_STRLEN(out));
-		numbytes = -1;
+		result = FAILURE;
 	}
 	zval_dtor(out);
 	break;
 }
 			}
 		default:
-			numbytes = -1;
+			result = FAILURE;
 			break;
 	}
 	php_stream_close(stream);

-	if (numbytes  0) {
+	if (result == FAILURE) {
 		RETURN_FALSE;
 	}


Modified: php/php-src/branches/PHP_5_2/main/SAPI.c
===
--- php/php-src/branches/PHP_5_2/main/SAPI.c	2010-03-18 19:42:55 UTC (rev 296357)
+++ php/php-src/branches/PHP_5_2/main/SAPI.c	2010-03-18 21:07:38 UTC (rev 296358)
@@ -191,8 +191,8 @@

 SAPI_API SAPI_POST_READER_FUNC(sapi_read_standard_form_data)
 {
-	int read_bytes;
-	int allocated_bytes=SAPI_POST_BLOCK_SIZE+1;
+	size_t read_bytes;
+	size_t allocated_bytes=SAPI_POST_BLOCK_SIZE+1;

 	if (SG(request_info).content_length  SG(post_max_size)) {
 		php_error_docref(NULL TSRMLS_CC, E_WARNING, POST Content-Length of %ld bytes exceeds the limit of %ld bytes,

Modified: php/php-src/branches/PHP_5_2/main/SAPI.h
===
--- php/php-src/branches/PHP_5_2/main/SAPI.h	2010-03-18 19:42:55 UTC (rev 296357)
+++ php/php-src/branches/PHP_5_2/main/SAPI.h	2010-03-18 21:07:38 UTC (rev 296358)
@@ -118,7 +118,11 @@
 	void *server_context;
 	sapi_request_info request_info;
 	sapi_headers_struct sapi_headers;
+#ifdef HAVE_LARGE_UPLOADS_FIX
+	size_t read_post_bytes;
+#else
 	int read_post_bytes;
+#endif
 	unsigned char headers_sent;
 	struct stat global_stat;
 	char *default_mimetype;

Modified: php/php-src/branches/PHP_5_2/main/rfc1867.c
===
--- php/php-src/branches/PHP_5_2/main/rfc1867.c	2010-03-18 19:42:55 UTC (rev 296357)
+++ 

[PHP-CVS] svn: /php/php-src/branches/ PHP_5_2/configure.in PHP_5_2/ext/standard/file.c PHP_5_2/main/SAPI.c PHP_5_2/main/SAPI.h PHP_5_2/main/rfc1867.c PHP_5_3/configure.in PHP_5_3/ext/standard/file.c P

2010-03-18 Thread Andrei Zmievski
andrei   Thu, 18 Mar 2010 22:37:25 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=296362

Log:
I am sorry I tried fixing PHP without extensive discussion on the mailing list.
I am sorry I tried fixing PHP without extensive discussion on the mailing list.
I am sorry I tried fixing PHP without extensive discussion on the mailing list.

Hope all the relevant parties are satisfied.

Changed paths:
U   php/php-src/branches/PHP_5_2/configure.in
U   php/php-src/branches/PHP_5_2/ext/standard/file.c
U   php/php-src/branches/PHP_5_2/main/SAPI.c
U   php/php-src/branches/PHP_5_2/main/SAPI.h
U   php/php-src/branches/PHP_5_2/main/rfc1867.c
U   php/php-src/branches/PHP_5_3/configure.in
U   php/php-src/branches/PHP_5_3/ext/standard/file.c
U   php/php-src/branches/PHP_5_3/main/SAPI.c
U   php/php-src/branches/PHP_5_3/main/SAPI.h
U   php/php-src/branches/PHP_5_3/main/rfc1867.c

Modified: php/php-src/branches/PHP_5_2/configure.in
===
--- php/php-src/branches/PHP_5_2/configure.in	2010-03-18 22:07:51 UTC (rev 296361)
+++ php/php-src/branches/PHP_5_2/configure.in	2010-03-18 22:37:25 UTC (rev 296362)
@@ -896,12 +896,6 @@
   AC_MSG_RESULT([using system default])
 fi

-PHP_ARG_ENABLE(large-uploads-fix, whether to enable large files (2G-4G) uploads fix,
-[  --enable-large-uploads-fix Enable large files (2G-4G) uploads fix], no, no)
-if test $PHP_LARGE_UPLOADS_FIX = yes; then
-	AC_DEFINE(HAVE_LARGE_UPLOADS_FIX, 1, [Whether to enable large files (2G-4G) uploads fix])
-fi
-
 divert(5)

 dnl ## In diversion 5 we check which extensions should be compiled.

Modified: php/php-src/branches/PHP_5_2/ext/standard/file.c
===
--- php/php-src/branches/PHP_5_2/ext/standard/file.c	2010-03-18 22:07:51 UTC (rev 296361)
+++ php/php-src/branches/PHP_5_2/ext/standard/file.c	2010-03-18 22:37:25 UTC (rev 296362)
@@ -579,8 +579,7 @@
 	char *filename;
 	int filename_len;
 	zval *data;
-	size_t numbytes = 0;
-	int result = SUCCESS;
+	int numbytes = 0;
 	long flags = 0;
 	zval *zcontext = NULL;
 	php_stream_context *context = NULL;
@@ -623,7 +622,7 @@
 		case IS_RESOURCE: {
 			size_t len;
 			if (php_stream_copy_to_stream_ex(srcstream, stream, PHP_STREAM_COPY_ALL, len) != SUCCESS) {
-result = FAILURE;
+numbytes = -1;
 			} else {
 numbytes = len;
 			}
@@ -641,7 +640,7 @@
 numbytes = php_stream_write(stream, Z_STRVAL_P(data), Z_STRLEN_P(data));
 if (numbytes != Z_STRLEN_P(data)) {
 	php_error_docref(NULL TSRMLS_CC, E_WARNING, Only %d of %d bytes written, possibly out of free disk space, numbytes, Z_STRLEN_P(data));
-	result = FAILURE;
+	numbytes = -1;
 }
 			}
 			break;
@@ -667,7 +666,7 @@
 			} else {
 php_error_docref(NULL TSRMLS_CC, E_WARNING, Only %d of %d bytes written, possibly out of free disk space,  bytes_written, Z_STRLEN_PP(tmp));
 			}
-			result = FAILURE;
+			numbytes = -1;
 			break;
 		}
 	}
@@ -684,19 +683,19 @@
 	numbytes = php_stream_write(stream, Z_STRVAL(out), Z_STRLEN(out));
 	if (numbytes != Z_STRLEN(out)) {
 		php_error_docref(NULL TSRMLS_CC, E_WARNING, Only %d of %d bytes written, possibly out of free disk space, numbytes, Z_STRLEN(out));
-		result = FAILURE;
+		numbytes = -1;
 	}
 	zval_dtor(out);
 	break;
 }
 			}
 		default:
-			result = FAILURE;
+			numbytes = -1;
 			break;
 	}
 	php_stream_close(stream);

-	if (result == FAILURE) {
+	if (numbytes  0) {
 		RETURN_FALSE;
 	}


Modified: php/php-src/branches/PHP_5_2/main/SAPI.c
===
--- php/php-src/branches/PHP_5_2/main/SAPI.c	2010-03-18 22:07:51 UTC (rev 296361)
+++ php/php-src/branches/PHP_5_2/main/SAPI.c	2010-03-18 22:37:25 UTC (rev 296362)
@@ -191,8 +191,8 @@

 SAPI_API SAPI_POST_READER_FUNC(sapi_read_standard_form_data)
 {
-	size_t read_bytes;
-	size_t allocated_bytes=SAPI_POST_BLOCK_SIZE+1;
+	int read_bytes;
+	int allocated_bytes=SAPI_POST_BLOCK_SIZE+1;

 	if (SG(request_info).content_length  SG(post_max_size)) {
 		php_error_docref(NULL TSRMLS_CC, E_WARNING, POST Content-Length of %ld bytes exceeds the limit of %ld bytes,

Modified: php/php-src/branches/PHP_5_2/main/SAPI.h
===
--- php/php-src/branches/PHP_5_2/main/SAPI.h	2010-03-18 22:07:51 UTC (rev 296361)
+++ php/php-src/branches/PHP_5_2/main/SAPI.h	2010-03-18 22:37:25 UTC (rev 296362)
@@ -118,11 +118,7 @@
 	void *server_context;
 	sapi_request_info request_info;
 	sapi_headers_struct sapi_headers;
-#ifdef HAVE_LARGE_UPLOADS_FIX
-	size_t read_post_bytes;
-#else
 	int read_post_bytes;
-#endif
 	unsigned char headers_sent;
 	struct stat global_stat;
 	char *default_mimetype;

Modified: php/php-src/branches/PHP_5_2/main/rfc1867.c