dmitry Mon Oct 22 07:37:37 2007 UTC Modified files: (Branch: PHP_5_3) /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/ext/standard/basic_functions.c?r1=1.725.2.31.2.64.2.7&r2=1.725.2.31.2.64.2.8&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.64.2.7 php-src/ext/standard/basic_functions.c:1.725.2.31.2.64.2.8 --- php-src/ext/standard/basic_functions.c:1.725.2.31.2.64.2.7 Sun Oct 7 05:22:06 2007 +++ php-src/ext/standard/basic_functions.c Mon Oct 22 07:37:37 2007 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: basic_functions.c,v 1.725.2.31.2.64.2.7 2007/10/07 05:22:06 davidw Exp $ */ +/* $Id: basic_functions.c,v 1.725.2.31.2.64.2.8 2007/10/22 07:37:37 dmitry Exp $ */ #include "php.h" #include "php_streams.h" @@ -53,6 +53,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 @@ -6061,6 +6066,10 @@ int path_len, new_path_len; zend_bool successful = 0; +#ifndef PHP_WIN32 + int oldmask; int ret; +#endif + if (!SG(rfc1867_uploaded_files)) { RETURN_FALSE; } @@ -6084,6 +6093,16 @@ VCWD_UNLINK(new_path); if (VCWD_RENAME(path, new_path) == 0) { successful = 1; +#ifndef PHP_WIN32 + oldmask = umask(077); + umask(oldmask); + + ret = VCWD_CHMOD(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(path, new_path, STREAM_DISABLE_OPEN_BASEDIR TSRMLS_CC) == SUCCESS) { VCWD_UNLINK(path); successful = 1;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php