diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2004-01-29 15:18:26 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2004-01-29 15:18:26 +0000 |
commit | dfaa06dbd76a2e5a1d88ca281b9a4b5804e4b077 (patch) | |
tree | 74bd4c86c08ab91dcc6b185032a41caa4cc6acc7 /sapi | |
parent | c33d480386ecdb4c664a05bb7cee819076dd3fca (diff) | |
download | php-git-dfaa06dbd76a2e5a1d88ca281b9a4b5804e4b077.tar.gz |
Apache 2 portion of the fix for bug #25753.
Diffstat (limited to 'sapi')
-rw-r--r-- | sapi/apache2filter/sapi_apache2.c | 12 | ||||
-rw-r--r-- | sapi/apache2handler/sapi_apache2.c | 12 |
2 files changed, 24 insertions, 0 deletions
diff --git a/sapi/apache2filter/sapi_apache2.c b/sapi/apache2filter/sapi_apache2.c index 8116c463c0..570d012328 100644 --- a/sapi/apache2filter/sapi_apache2.c +++ b/sapi/apache2filter/sapi_apache2.c @@ -429,11 +429,17 @@ static int php_output_filter(ap_filter_t *f, apr_bucket_brigade *bb) TSRMLS_FETCH(); if (f->r->proxyreq) { + zend_try { + zend_ini_deactivate(TSRMLS_C); + } zend_end_try(); return ap_pass_brigade(f->next, bb); } /* handle situations where user turns the engine off */ if (*p == '0') { + zend_try { + zend_ini_deactivate(TSRMLS_C); + } zend_end_try(); return ap_pass_brigade(f->next, bb); } @@ -451,11 +457,17 @@ static int php_output_filter(ap_filter_t *f, apr_bucket_brigade *bb) if (ctx == NULL) { ap_log_rerror(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, 0, f->r, "php failed to get server context"); + zend_try { + zend_ini_deactivate(TSRMLS_C); + } zend_end_try(); return HTTP_INTERNAL_SERVER_ERROR; } ctx->f = f; /* save whatever filters are after us in the chain. */ if (ctx->request_processed) { + zend_try { + zend_ini_deactivate(TSRMLS_C); + } zend_end_try(); return ap_pass_brigade(f->next, bb); } diff --git a/sapi/apache2handler/sapi_apache2.c b/sapi/apache2handler/sapi_apache2.c index f6bc71f61b..e00687f9cb 100644 --- a/sapi/apache2handler/sapi_apache2.c +++ b/sapi/apache2handler/sapi_apache2.c @@ -459,21 +459,33 @@ static int php_handler(request_rec *r) if (strcmp(r->handler, PHP_MAGIC_TYPE) && strcmp(r->handler, PHP_SOURCE_MAGIC_TYPE) && strcmp(r->handler, PHP_SCRIPT)) { /* Check for xbithack in this case. */ if (!AP2(xbithack) || strcmp(r->handler, "text/html") || !(r->finfo.protection & APR_UEXECUTE)) { + zend_try { + zend_ini_deactivate(TSRMLS_C); + } zend_end_try(); return DECLINED; } } /* handle situations where user turns the engine off */ if (!AP2(engine)) { + zend_try { + zend_ini_deactivate(TSRMLS_C); + } zend_end_try(); return DECLINED; } if (r->finfo.filetype == 0) { php_apache_sapi_log_message("script not found or unable to stat"); + zend_try { + zend_ini_deactivate(TSRMLS_C); + } zend_end_try(); return HTTP_NOT_FOUND; } if (r->finfo.filetype == APR_DIR) { php_apache_sapi_log_message("attempt to invoke directory as script"); + zend_try { + zend_ini_deactivate(TSRMLS_C); + } zend_end_try(); return HTTP_FORBIDDEN; } |