iliaa Wed Nov 10 19:40:18 2004 EDT
Modified files: (Branch: PHP_4_3)
/php-src NEWS
/php-src/main rfc1867.c
Log:
MFH: Fixed bug #30750 (Meaningful error message when upload directory is not
accessible).
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1247.2.751&r2=1.1247.2.752&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.1247.2.751 php-src/NEWS:1.1247.2.752
--- php-src/NEWS:1.1247.2.751 Thu Nov 4 15:17:25 2004
+++ php-src/NEWS Wed Nov 10 19:40:16 2004
@@ -4,6 +4,8 @@
- Fixed a bug in addslashes() handling of the '\0' character. (Ilia)
- Backported Marcus' foreach() speedup patch from PHP 5.x. (Derick)
- Fixed potential problems with unserializing invalid serialize data. (Marcus)
+- Fixed bug #30750 (Meaningful error message when upload directory is not
+ accessible). (Ilia)
- Fixed bug #30672 (Problem handling exif data in jpeg images at unusual
places). (Marcus)
- Fixed bug #30658 (Ensure that temporary files created by GD are removed).
http://cvs.php.net/diff.php/php-src/main/rfc1867.c?r1=1.122.2.26&r2=1.122.2.27&ty=u
Index: php-src/main/rfc1867.c
diff -u php-src/main/rfc1867.c:1.122.2.26 php-src/main/rfc1867.c:1.122.2.27
--- php-src/main/rfc1867.c:1.122.2.26 Mon Sep 13 12:00:50 2004
+++ php-src/main/rfc1867.c Wed Nov 10 19:40:18 2004
@@ -16,7 +16,7 @@
| Jani Taskinen <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: rfc1867.c,v 1.122.2.26 2004/09/13 16:00:50 sesser Exp $ */
+/* $Id: rfc1867.c,v 1.122.2.27 2004/11/11 00:40:18 iliaa Exp $ */
/*
* This product includes software developed by the Apache Group
@@ -126,6 +126,7 @@
#define UPLOAD_ERROR_B 2 /* Uploaded file exceeded MAX_FILE_SIZE */
#define UPLOAD_ERROR_C 3 /* Partially uploaded */
#define UPLOAD_ERROR_D 4 /* No file uploaded */
+#define UPLOAD_ERROR_E 6 /* Missing /tmp or similar directory */
void php_rfc1867_register_constants(TSRMLS_D)
{
@@ -134,6 +135,7 @@
REGISTER_MAIN_LONG_CONSTANT("UPLOAD_ERR_FORM_SIZE", UPLOAD_ERROR_B,
CONST_CS | CONST_PERSISTENT);
REGISTER_MAIN_LONG_CONSTANT("UPLOAD_ERR_PARTIAL", UPLOAD_ERROR_C,
CONST_CS | CONST_PERSISTENT);
REGISTER_MAIN_LONG_CONSTANT("UPLOAD_ERR_NO_FILE", UPLOAD_ERROR_D,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_MAIN_LONG_CONSTANT("UPLOAD_ERR_NO_TMP_DIR", UPLOAD_ERROR_E,
CONST_CS | CONST_PERSISTENT);
}
static void normalize_protected_variable(char *varname TSRMLS_DC)
@@ -956,12 +958,14 @@
}
}
+ total_bytes = cancel_upload = 0;
+
if (!skip_upload) {
/* Handle file */
fp =
php_open_temporary_file(PG(upload_tmp_dir), "php", &temp_filename TSRMLS_CC);
if (!fp) {
sapi_module.sapi_error(E_WARNING, "File
upload error - unable to create a temporary file");
- skip_upload = 1;
+ cancel_upload = UPLOAD_ERROR_E;
}
}
if (skip_upload) {
@@ -970,9 +974,6 @@
continue;
}
- total_bytes = 0;
- cancel_upload = 0;
-
if(strlen(filename) == 0) {
#ifdef DEBUG_FILE_UPLOAD
sapi_module.sapi_error(E_NOTICE, "No file
uploaded");
@@ -999,10 +1000,12 @@
}
}
}
- fclose(fp);
+ if (fp) {
+ fclose(fp);
+ }
#ifdef DEBUG_FILE_UPLOAD
- if(strlen(filename) > 0 && total_bytes == 0) {
+ if(strlen(filename) > 0 && total_bytes == 0 &&
!cancel_upload) {
sapi_module.sapi_error(E_WARNING, "Uploaded
file size 0 - file [%s=%s] not saved", param, filename);
cancel_upload = 5;
}
@@ -1010,7 +1013,9 @@
if (cancel_upload) {
if (temp_filename) {
- unlink(temp_filename);
+ if (cancel_upload != UPLOAD_ERROR_E) {
/* file creation failed */
+ unlink(temp_filename);
+ }
efree(temp_filename);
}
temp_filename="";
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php