cvs: php4 /sapi/apache mod_php4.c mod_php4.h php_apache.c
| From: | Zeev Suraski | Date: | Sun, 13 May 2001 09:03:46 +0000 |
| Subject: | cvs: php4 /sapi/apache mod_php4.c mod_php4.h php_apache.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-5718@lists.php.net to get a copy of this message | ||
zeev Sun May 13 02:03:46 2001 EDT
Modified files:
/php4/sapi/apache mod_php4.c mod_php4.h php_apache.c
Log:
Safer detection of recursive PHP invocations
Index: php4/sapi/apache/mod_php4.c
diff -u php4/sapi/apache/mod_php4.c:1.95 php4/sapi/apache/mod_php4.c:1.96
--- php4/sapi/apache/mod_php4.c:1.95 Fri May 11 11:17:08 2001
+++ php4/sapi/apache/mod_php4.c Sun May 13 02:03:46 2001
@@ -17,7 +17,7 @@
| PHP 4.0 patches by Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: mod_php4.c,v 1.95 2001/05/11 18:17:08 thies Exp $ */
+/* $Id: mod_php4.c,v 1.96 2001/05/13 09:03:46 zeev Exp $ */
#define NO_REGEX_EXTRA_H
#ifdef WIN32
@@ -285,7 +285,9 @@
static void php_apache_request_shutdown(void *dummy)
{
SLS_FETCH();
+ APLS_FETCH();
+ AP(in_request)=0;
SG(server_context) = NULL; /* The server context (request) is invalid by the time run_cleanups()
is called */
php_request_shutdown(dummy);
}
@@ -446,7 +448,7 @@
PLS_FETCH();
APLS_FETCH();
- if (r->assbackwards && r->protocol && !strcmp(r->protocol,
"INCLUDED")) {
+ if (AP(in_request)) {
zend_file_handle fh;
fh.filename = r->filename;
@@ -456,6 +458,7 @@
zend_execute_scripts(ZEND_INCLUDE CLS_CC ELS_CC, 1, &fh);
return OK;
}
+ AP(in_request)=1;
if (setjmp(EG(bailout))!=0) {
return OK;
Index: php4/sapi/apache/mod_php4.h
diff -u php4/sapi/apache/mod_php4.h:1.11 php4/sapi/apache/mod_php4.h:1.12
--- php4/sapi/apache/mod_php4.h:1.11 Sun Feb 25 22:07:35 2001
+++ php4/sapi/apache/mod_php4.h Sun May 13 02:03:46 2001
@@ -15,7 +15,7 @@
| Authors: Rasmus Lerdorf <rasmus@php.net> |
+----------------------------------------------------------------------+
*/
-/* $Id: mod_php4.h,v 1.11 2001/02/26 06:07:35 andi Exp $ */
+/* $Id: mod_php4.h,v 1.12 2001/05/13 09:03:46 zeev Exp $ */
#ifndef MOD_PHP4_H
#define MOD_PHP4_H
@@ -31,6 +31,7 @@
long last_modified;
long xbithack;
long terminate_child;
+ zend_bool in_request;
} php_apache_info_struct;
extern zend_module_entry apache_module_entry;
Index: php4/sapi/apache/php_apache.c
diff -u php4/sapi/apache/php_apache.c:1.29 php4/sapi/apache/php_apache.c:1.30
--- php4/sapi/apache/php_apache.c:1.29 Mon May 7 04:07:22 2001
+++ php4/sapi/apache/php_apache.c Sun May 13 02:03:46 2001
@@ -17,7 +17,7 @@
| David Sklar <sklar@student.net> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_apache.c,v 1.29 2001/05/07 11:07:22 zeev Exp $ */
+/* $Id: php_apache.c,v 1.30 2001/05/13 09:03:46 zeev Exp $ */
#define NO_REGEX_EXTRA_H
@@ -89,10 +89,19 @@
PHP_INI_END()
+
+static void php_apache_globals_ctor(php_apache_info_struct *apache_globals)
+{
+ apache_globals->in_request = 0;
+}
+
+
static PHP_MINIT_FUNCTION(apache)
{
#ifdef ZTS
- php_apache_info_id = ts_allocate_id(sizeof(php_apache_info_struct), NULL, NULL);
+ php_apache_info_id = ts_allocate_id(sizeof(php_apache_info_struct), ts_allocate_ctor, NULL);
+#else
+ php_apache_globals_ctor(&php_apache_info);
#endif
REGISTER_INI_ENTRIES();
return SUCCESS;