summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Dovgal <tony2001@php.net>2005-10-12 21:24:09 +0000
committerAntony Dovgal <tony2001@php.net>2005-10-12 21:24:09 +0000
commitf4371b9cc68b6a1a2f4e03405170e24cf9f8fa9d (patch)
tree2b3c770b7d25939b0af67ef822c820e4e8ef3535
parent4acffedc6b3c8eb2e93088aec449f8baea2299ac (diff)
downloadphp-git-f4371b9cc68b6a1a2f4e03405170e24cf9f8fa9d.tar.gz
fix bug #34581 (crash with mod_rewrite)
-rw-r--r--NEWS1
-rw-r--r--sapi/apache2handler/sapi_apache2.c11
2 files changed, 11 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 71c128ac4a..c862ed0791 100644
--- a/NEWS
+++ b/NEWS
@@ -79,6 +79,7 @@ PHP NEWS
- Fixed bug #34590 (User defined PDOStatement class can't implement methods).
(Marcus)
- Fixed bug #34584 (Segfault with SPL autoload handler). (Marcus)
+- Fixed bug #34581 (crash with mod_rewrite). (Tony, Ilia)
- Fixed bug #34565 (mb_send_mail does not fetch mail.force_extra_parameters).
(Marco, Ilia)
- Fixed bug #34557 (php -m exits with "error" 1). (Johannes)
diff --git a/sapi/apache2handler/sapi_apache2.c b/sapi/apache2handler/sapi_apache2.c
index 88e48cc37b..06b7bd912c 100644
--- a/sapi/apache2handler/sapi_apache2.c
+++ b/sapi/apache2handler/sapi_apache2.c
@@ -473,6 +473,7 @@ normal:
ctx->r = r;
ctx = NULL; /* May look weird to null it here, but it is to catch the right case in the first_try later on */
} else {
+ parent_req = ctx->r;
ctx->r = r;
}
apply_config(conf);
@@ -531,7 +532,15 @@ zend_first_try {
zend_bailout();
}
} else {
- parent_req = ctx->r;
+ if (!parent_req) {
+ parent_req = ctx->r;
+ }
+ if (parent_req && strcmp(parent_req->handler, PHP_MAGIC_TYPE) && strcmp(parent_req->handler, PHP_SOURCE_MAGIC_TYPE) && strcmp(parent_req->handler, PHP_SCRIPT)) {
+ if (php_apache_request_ctor(r, ctx TSRMLS_CC)!=SUCCESS) {
+ zend_bailout();
+ }
+ }
+
/* check if comming due to ErrorDocument */
if (parent_req && parent_req->status != HTTP_OK) {
parent_req = NULL;