From: Dmitry Stogov Date: Mon, 21 Jul 2008 08:43:36 +0000 (+0000) Subject: Fixed chdir() into requested file directory inconsistencies X-Git-Tag: php-5.3.0alpha1~250 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=baab204436f1e8dd92347468a79b6c0342eeea81;p=php Fixed chdir() into requested file directory inconsistencies --- diff --git a/main/fopen_wrappers.c b/main/fopen_wrappers.c index 4acc47e4f2..21a6a59950 100644 --- a/main/fopen_wrappers.c +++ b/main/fopen_wrappers.c @@ -425,9 +425,6 @@ PHPAPI int php_fopen_primary_script(zend_file_handle *file_handle TSRMLS_DC) file_handle->opened_path = expand_filepath(filename, NULL TSRMLS_CC); - if (!(SG(options) & SAPI_OPTION_NO_CHDIR)) { - VCWD_CHDIR_FILE(filename); - } SG(request_info).path_translated = filename; file_handle->filename = SG(request_info).path_translated; diff --git a/main/main.c b/main/main.c index 2e083712a5..ea7ed5d837 100644 --- a/main/main.c +++ b/main/main.c @@ -2027,7 +2027,7 @@ PHPAPI int php_execute_script(zend_file_handle *primary_file TSRMLS_DC) PG(during_request_startup) = 0; - if ((primary_file->type == ZEND_HANDLE_FILENAME || primary_file->type == ZEND_HANDLE_STREAM) && primary_file->filename) { + if (primary_file->filename && !(SG(options) & SAPI_OPTION_NO_CHDIR)) { #if HAVE_BROKEN_GETCWD /* this looks nasty to me */ old_cwd_fd = open(".", 0); @@ -2117,7 +2117,7 @@ PHPAPI int php_execute_simple_script(zend_file_handle *primary_file, zval **ret PG(during_request_startup) = 0; - if (primary_file->type == ZEND_HANDLE_FILENAME && primary_file->filename) { + if (primary_file->filename && !(SG(options) & SAPI_OPTION_NO_CHDIR)) { VCWD_GETCWD(old_cwd, OLD_CWD_SIZE-1); VCWD_CHDIR_FILE(primary_file->filename); } diff --git a/sapi/caudium/caudium.c b/sapi/caudium/caudium.c index 9bbd419050..fb77c7d3dd 100644 --- a/sapi/caudium/caudium.c +++ b/sapi/caudium/caudium.c @@ -639,15 +639,6 @@ static void php_caudium_module_main(php_caudium_request *ureq) THREADS_ALLOW(); #endif -#ifdef VIRTUAL_DIR - /* Change virtual directory, if the feature is enabled, which is - * (almost) a requirement for PHP in Caudium. Might want to fail if it - * isn't. Not a problem though, since it's on by default when using ZTS - * which we require. - */ - VCWD_CHDIR_FILE(THIS->filename->str); -#endif - file_handle.type = ZEND_HANDLE_FILENAME; file_handle.filename = THIS->filename->str; file_handle.opened_path = NULL;