Re: umask weirdness

From: 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


« previous php.internals (#9497) next »