File: 034-apache2_umask_fix.patch

package info (click to toggle)
php5 5.2.0-8%2Betch1
  • links: PTS
  • area: main
  • in suites: etch-m68k
  • size: 58,836 kB
  • ctags: 45,575
  • sloc: ansic: 535,107; sh: 17,819; php: 11,336; cpp: 4,289; xml: 3,861; yacc: 2,446; lex: 2,174; makefile: 1,150; tcl: 1,128; awk: 693; perl: 71; sql: 22; pascal: 15
file content (44 lines) | stat: -rw-r--r-- 853 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

Save and restore umask across requests correctly.

--- php-4.3.10/sapi/apache2handler/sapi_apache2.c.umask
+++ php-4.3.10/sapi/apache2handler/sapi_apache2.c
@@ -401,6 +401,19 @@
 	return APR_SUCCESS;
 }
 
+static int saved_umask;
+
+static void php_save_umask(void)
+{
+	saved_umask = umask(077);
+	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;
@@ -575,6 +588,8 @@
 	} else {
 		zend_file_handle zfd;
 
+		php_save_umask();
+
 		zfd.type = ZEND_HANDLE_FILENAME;
 		zfd.filename = (char *) r->filename;
 		zfd.free_filename = 0;
@@ -585,6 +600,9 @@
 		} else {
 			zend_execute_scripts(ZEND_INCLUDE TSRMLS_CC, NULL, 1, &zfd);
 		}
+
+		php_restore_umask();
+
 #if MEMORY_LIMIT
 		{
 			char *mem_usage;