diff options
Diffstat (limited to 'sapi/apache2handler/sapi_apache2.c')
-rw-r--r-- | sapi/apache2handler/sapi_apache2.c | 12 |
1 files changed, 12 insertions, 0 deletions
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; } |