Sophie

Sophie

distrib > Mandriva > cs4.0 > i586 > by-pkgid > 665b53d51b37ef4d3a9c620ff5a368c6 > files > 11

php4-4.4.4-1mlcs4.src.rpm


Save and restore umask across requests correctly.

--- sapi/apache2handler/sapi_apache2.c	2004-12-06 19:55:16.000000000 +0100
+++ sapi/apache2handler/sapi_apache2.c.oden	2004-12-16 11:05:48.550043216 +0100
@@ -399,6 +399,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 int php_apache_request_ctor(request_rec *r, php_struct *ctx TSRMLS_DC)
 {
 	char *content_type;
@@ -533,6 +546,8 @@
 	} else {
 		zend_file_handle zfd = {0};
 
+		php_save_umask();
+
 		zfd.type = ZEND_HANDLE_FILENAME;
 		zfd.filename = (char *) r->filename;
 		zfd.free_filename = 0;
@@ -543,6 +558,9 @@
 		} else {
 			zend_execute_scripts(ZEND_INCLUDE TSRMLS_CC, NULL, 1, &zfd);
 		}
+
+		php_restore_umask();
+
 #if MEMORY_LIMIT
 		{
 			char *mem_usage;