File: 034-apache2_umask_fix.patch

package info (click to toggle)
php5 5.3.3-7%2Bsqueeze19
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 122,836 kB
  • ctags: 55,742
  • sloc: ansic: 633,963; php: 19,620; sh: 11,344; xml: 5,816; cpp: 2,400; yacc: 1,745; exp: 1,514; makefile: 1,019; pascal: 623; awk: 537; sql: 22
file content (50 lines) | stat: -rw-r--r-- 1,179 bytes parent folder | download | duplicates (3)
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
45
46
47
48
49
50
Description: Save and restore umask across requests correctly.
 .
 Check if this is still an issue not addressed by upstream in some
 other way already.
Origin: other
Bug-Debian: http://bugs.debian.org/286225
Forwarded: no
Last-Update: 2010-01-18

--- a/sapi/apache2handler/sapi_apache2.c
+++ b/sapi/apache2handler/sapi_apache2.c
@@ -469,6 +469,19 @@ static apr_status_t php_server_context_c
 	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_length;
@@ -660,6 +673,8 @@ zend_first_try {
 	} else {
 		zend_file_handle zfd;
 
+		php_save_umask();
+
 		zfd.type = ZEND_HANDLE_FILENAME;
 		zfd.filename = (char *) r->filename;
 		zfd.free_filename = 0;
@@ -671,6 +686,9 @@ zend_first_try {
 			zend_execute_scripts(ZEND_INCLUDE TSRMLS_CC, NULL, 1, &zfd);
 		}
 
+		php_restore_umask();
+
+
 		apr_table_set(r->notes, "mod_php_memory_usage",
 			apr_psprintf(ctx->r->pool, "%u", zend_memory_peak_usage(1 TSRMLS_CC)));
 	}