summaryrefslogtreecommitdiffstats
path: root/php-wip.patch
blob: 0fcc0e72ab2cac5f83286ceba214a04ad8e57a64 (plain)
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
From 9d75b9fb27cd93c19cd168a486ab2efe2ce2aa78 Mon Sep 17 00:00:00 2001
From: Xinchen Hui <laruence@php.net>
Date: Wed, 6 Nov 2013 16:53:45 +0800
Subject: [PATCH] Revert "Fixed issue #115 (path issue when using phar)."

We need another better way to fix this

This reverts commit 098855433dc5d609e3970f0bc9d6766c007273f3.

Conflicts:
	ext/opcache/ZendAccelerator.c
---
 NEWS                          |  1 -
 ext/opcache/ZendAccelerator.c | 44 +++++--------------------------------------
 2 files changed, 5 insertions(+), 40 deletions(-)

diff --git a/NEWS b/NEWS
index 26990de..3a690bb 100644
--- a/NEWS
+++ b/NEWS
@@ -75,7 +75,6 @@ PHP                                                                        NEWS
     imap). (ryotakatsuki at gmail dot com)
 
 - OPcache:
-  . Fixed issue #115 (path issue when using phar). (Laruence)
   . Added support for GNU Hurd. (Svante Signell)
   . Added function opcache_compile_file() to load PHP scripts into cache
     without execution. (Julien)
diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c
index 8cee80f..72b5a1b 100644
--- a/ext/opcache/ZendAccelerator.c
+++ b/ext/opcache/ZendAccelerator.c
@@ -37,7 +37,6 @@
 #include "zend_API.h"
 #include "zend_ini.h"
 #include "TSRM/tsrm_virtual_cwd.h"
-#include "ext/phar/php_phar.h"
 #include "zend_accelerator_util_funcs.h"
 #include "zend_accelerator_hash.h"
 
@@ -145,21 +144,6 @@ static inline int is_cacheable_stream_path(const char *filename)
 	       memcmp(filename, "phar://", sizeof("phar://") - 1) == 0;
 }
 
-static inline int is_phar_relative_alias_path(const char *filename, char **alias, int *alias_len)
-{
-	if (memcmp(filename, "phar://", sizeof("phar://") - 1) == 0
-			&& filename[sizeof("phar://") - 1] != '\0' && filename[sizeof("phar://") - 1] != '/') {
-		char *slash;
-		*alias = (char*)filename + sizeof("phar://") - 1;
-		slash = strstr(*alias, "/");
-		if (slash) {
-			*alias_len = slash - *alias;
-			return 1;
-		}
-	}
-	return 0;
-}
-
 /* O+ overrides PHP chdir() function and remembers the current working directory
  * in ZCG(cwd) and ZCG(cwd_len). Later accel_getcwd() can use stored value and
  * avoid getcwd() call.
@@ -1044,33 +1028,15 @@ char *accel_make_persistent_key_ex(zend_file_handle *file_handle, int path_lengt
         }
 		memcpy(ZCG(key) + cur_len, include_path, include_path_len);
 		ZCG(key)[key_length] = '\0';
-	} else {
-		/* not use_cwd */
-		key_length = path_length;
+    } else {
+        /* not use_cwd */
+        key_length = path_length;
 		if ((size_t)key_length >= sizeof(ZCG(key))) {
 			ZCG(key_len) = 0;
 			return NULL;
-		} else {
-			char *alias;
-			int alias_len;
-			if (is_phar_relative_alias_path(file_handle->filename, &alias, &alias_len)) {
-				char *phar_path;
-				int phar_path_len;
-				if (phar_resolve_alias(alias, alias_len, &phar_path, &phar_path_len TSRMLS_CC) == SUCCESS) {
-					int filename_len = strlen(file_handle->filename);
-					memcpy(ZCG(key), "phar://", sizeof("phar://") -1);
-					memcpy(ZCG(key) + sizeof("phar://") - 1, phar_path, phar_path_len);
-					memcpy(ZCG(key) + sizeof("phar://") - 1 + phar_path_len,
-							alias + alias_len, filename_len - alias_len - sizeof("phar://") + 2);
-					key_length = filename_len + (phar_path_len - alias_len);
-				} else {
-					memcpy(ZCG(key), file_handle->filename, key_length + 1);
-				}
-			} else {
-				memcpy(ZCG(key), file_handle->filename, key_length + 1);
-			}
 		}
-	}
+		memcpy(ZCG(key), file_handle->filename, key_length + 1);
+    }
 
 	*key_len = ZCG(key_len) = key_length;
 	return ZCG(key);
-- 
1.8.4.rc3

diff -up ext/date/lib/parse_iso_intervals.c.old ext/date/lib/parse_iso_intervals.c
--- a/ext/date/lib/parse_iso_intervals.c.old	2013-11-08 18:22:12.225586458 +0100
+++ b/ext/date/lib/parse_iso_intervals.c	2013-11-08 18:22:47.484721897 +0100
@@ -380,7 +380,7 @@ yy6:
 					break;
 			}
 			ptr++;
-		} while (*ptr);
+		} while (!s->errors->error_count && *ptr);
 		s->have_period = 1;
 		TIMELIB_DEINIT;
 		return TIMELIB_PERIOD;
diff -up ext/date/lib/parse_iso_intervals.re.old ext/date/lib/parse_iso_intervals.re
--- a/ext/date/lib/parse_iso_intervals.re.old	2013-11-08 18:09:18.815549958 +0100
+++ b/ext/date/lib/parse_iso_intervals.re	2013-11-08 18:09:34.461608419 +0100
@@ -348,7 +348,7 @@ isoweek          = year4 "-"? "W" weekof
 					break;
 			}
 			ptr++;
-		} while (*ptr);
+		} while (!s->errors->error_count && *ptr);
 		s->have_period = 1;
 		TIMELIB_DEINIT;
 		return TIMELIB_PERIOD;