Re: umask weirdness
| From: | Andi Gutmans | Date: | Fri, 23 Apr 2004 13:59:27 +0000 |
| Subject: | Re: umask weirdness | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-9497@lists.php.net to get a copy of this message | ||
If at all, I think this should be fixed in PHP so that it affects all SAPIs (i.e. first time we set umask() save the old one and a flag that let's RSHUTDOWN know it should change it back).
Andi
At 10:51 AM 4/22/2004 +0100, Joe Orton wrote:
Patch is below; the apache2filter SAPI needs the same fix. This "feature" of resetting the umask across requests is pretty dubious if used with a threaded MPM, however, since the umask is a process attribute not a thread attribute. --- php-4.3.6/sapi/apache2handler/sapi_apache2.c.umask +++ php-4.3.6/sapi/apache2handler/sapi_apache2.c @@ -420,6 +420,19 @@return APR_SUCCESS;} +static int saved_umask; + +static void php_save_umask(void) +{+ saved_umask = umask(0777); + umask(saved_umask);+} + +static void php_restore_umask(void) +{+ umask(saved_umask);+} + static void php_apache_request_ctor(request_rec *r, php_struct *ctx TSRMLS_DC) {char *content_type;@@ -552,6 +565,8 @@} else { zend_file_handle zfd = {0};+ php_save_umask();+zfd.type = ZEND_HANDLE_FILENAME; zfd.filename = (char *) r->filename; zfd.free_filename = 0;@@ -562,6 +577,9 @@} else { zend_execute_scripts(ZEND_INCLUDE TSRMLS_CC, NULL, 1, &zfd); }++ php_restore_umask();+ #if MEMORY_LIMIT{ char *mem_usage;-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php