Re: umask weirdness

From: Date: Thu, 22 Apr 2004 09:51:25 +0000
Subject: Re: umask weirdness
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-9483@lists.php.net to get a copy of this message
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;

« previous php.internals (#9483) next »