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