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

-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to