dmitry Mon Oct 22 07:37:21 2007 UTC Modified files: (Branch: PHP_5_2) /php-src NEWS /php-src/ext/standard basic_functions.c Log: Fixed move_uploaded_file() to always set file permissions of resulting file according to UMASK (Andrew Sitnikov) http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.982&r2=1.2027.2.547.2.983&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.982 php-src/NEWS:1.2027.2.547.2.983 --- php-src/NEWS:1.2027.2.547.2.982 Fri Oct 19 05:35:05 2007 +++ php-src/NEWS Mon Oct 22 07:37:20 2007 @@ -11,6 +11,8 @@ array_uintersect_assoc(), array_diff_key(), array_diff_assoc() and array_udiff_assoc(). (Dmitry) +- Fixed move_uploaded_file() to set file permissions of resulting file + according to UMASK (Andrew Sitnikov) - Fixed possible crash in ext/soap because of uninitialized value. (Zdash Urf) - Fixed regression in glob() when enforcing safe_mode/open_basedir checks on paths containing '*'. (Ilia) http://cvs.php.net/viewvc.cgi/php-src/ext/standard/basic_functions.c?r1=1.725.2.31.2.65&r2=1.725.2.31.2.66&diff_format=u Index: php-src/ext/standard/basic_functions.c diff -u php-src/ext/standard/basic_functions.c:1.725.2.31.2.65 php-src/ext/standard/basic_functions.c:1.725.2.31.2.66 --- php-src/ext/standard/basic_functions.c:1.725.2.31.2.65 Thu Oct 4 13:31:10 2007 +++ php-src/ext/standard/basic_functions.c Mon Oct 22 07:37:20 2007 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: basic_functions.c,v 1.725.2.31.2.65 2007/10/04 13:31:10 jani Exp $ */ +/* $Id: basic_functions.c,v 1.725.2.31.2.66 2007/10/22 07:37:20 dmitry Exp $ */ #include "php.h" #include "php_streams.h" @@ -50,6 +50,11 @@ #include <time.h> #include <stdio.h> +#ifndef PHP_WIN32 +#include <sys/types.h> +#include <sys/stat.h> +#endif + #ifdef NETWARE #include <netinet/in.h> #endif @@ -6075,6 +6080,10 @@ zval **path, **new_path; zend_bool successful = 0; +#ifndef PHP_WIN32 + int oldmask; int ret; +#endif + if (!SG(rfc1867_uploaded_files)) { RETURN_FALSE; } @@ -6100,6 +6109,16 @@ VCWD_UNLINK(Z_STRVAL_PP(new_path)); if (VCWD_RENAME(Z_STRVAL_PP(path), Z_STRVAL_PP(new_path)) == 0) { successful = 1; +#ifndef PHP_WIN32 + oldmask = umask(077); + umask(oldmask); + + ret = VCWD_CHMOD(Z_STRVAL_PP(new_path), 0666 & ~oldmask); + + if (ret == -1) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", strerror(errno)); + } +#endif } else if (php_copy_file_ex(Z_STRVAL_PP(path), Z_STRVAL_PP(new_path), STREAM_DISABLE_OPEN_BASEDIR TSRMLS_CC) == SUCCESS) { VCWD_UNLINK(Z_STRVAL_PP(path)); successful = 1;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php