VCWD_GETCWD is sufficient. On Wed, Sep 21, 2011 at 1:49 AM, Moriyoshi Koizumi <m...@mozo.jp> wrote: > Hi, > > Where does HAVE_BROKEN_GETCWD come from? Isn't simply using VCWD_GETCWD > sufficient? > > Moriyoshi > > On 2011/09/20, at 16:06, Xinchen Hui wrote: > >> laruence Tue, 20 Sep 2011 07:06:55 +0000 >> >> Revision: http://svn.php.net/viewvc?view=revision&revision=317040 >> >> Log: >> Fix Bug #55726 (Changing the working directory makes router script >> inaccessible) >> >> Bug: https://bugs.php.net/55726 (Assigned) Changing the working directory >> makes router script inaccessible >> >> Changed paths: >> U php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c >> U php/php-src/trunk/sapi/cli/php_cli_server.c >> >> Modified: php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c >> =================================================================== >> --- php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c 2011-09-20 >> 05:42:36 UTC (rev 317039) >> +++ php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c 2011-09-20 >> 07:06:55 UTC (rev 317040) >> @@ -1877,11 +1877,24 @@ >> } >> { >> zend_file_handle zfd; >> +#if HAVE_BROKEN_GETCWD >> + int old_cwd_fd = -1; >> + old_cwd_fd = open(".", 0); >> +#else >> + char *old_cwd; >> + ALLOCA_FLAG(use_heap) >> +#define OLD_CWD_SIZE 4096 >> + old_cwd = do_alloca(OLD_CWD_SIZE, use_heap); >> + old_cwd[0] = '\0'; >> + php_ignore_value(VCWD_GETCWD(old_cwd, OLD_CWD_SIZE-1)); >> +#endif >> + >> zfd.type = ZEND_HANDLE_FILENAME; >> zfd.filename = server->router; >> zfd.handle.fp = NULL; >> zfd.free_filename = 0; >> zfd.opened_path = NULL; >> + >> zend_try { >> zval *retval = NULL; >> if (SUCCESS == zend_execute_scripts(ZEND_REQUIRE >> TSRMLS_CC, &retval, 1, &zfd)) { >> @@ -1893,6 +1906,18 @@ >> decline = 1; >> } >> } zend_end_try(); >> + >> +#if HAVE_BROKEN_GETCWD >> + if (old_cwd_fd != -1) { >> + fchdir(old_cwd_fd); >> + close(old_cwd_fd); >> + } >> +#else >> + if (old_cwd[0] != '\0') { >> + php_ignore_value(VCWD_CHDIR(old_cwd)); >> + } >> + free_alloca(old_cwd, use_heap); >> +#endif >> } >> >> if (decline) { >> >> Modified: php/php-src/trunk/sapi/cli/php_cli_server.c >> =================================================================== >> --- php/php-src/trunk/sapi/cli/php_cli_server.c 2011-09-20 05:42:36 >> UTC (rev 317039) >> +++ php/php-src/trunk/sapi/cli/php_cli_server.c 2011-09-20 07:06:55 >> UTC (rev 317040) >> @@ -1877,11 +1877,24 @@ >> } >> { >> zend_file_handle zfd; >> +#if HAVE_BROKEN_GETCWD >> + int old_cwd_fd = -1; >> + old_cwd_fd = open(".", 0); >> +#else >> + char *old_cwd; >> + ALLOCA_FLAG(use_heap) >> +#define OLD_CWD_SIZE 4096 >> + old_cwd = do_alloca(OLD_CWD_SIZE, use_heap); >> + old_cwd[0] = '\0'; >> + php_ignore_value(VCWD_GETCWD(old_cwd, OLD_CWD_SIZE-1)); >> +#endif >> + >> zfd.type = ZEND_HANDLE_FILENAME; >> zfd.filename = server->router; >> zfd.handle.fp = NULL; >> zfd.free_filename = 0; >> zfd.opened_path = NULL; >> + >> zend_try { >> zval *retval = NULL; >> if (SUCCESS == zend_execute_scripts(ZEND_REQUIRE >> TSRMLS_CC, &retval, 1, &zfd)) { >> @@ -1893,6 +1906,18 @@ >> decline = 1; >> } >> } zend_end_try(); >> + >> +#if HAVE_BROKEN_GETCWD >> + if (old_cwd_fd != -1) { >> + fchdir(old_cwd_fd); >> + close(old_cwd_fd); >> + } >> +#else >> + if (old_cwd[0] != '\0') { >> + php_ignore_value(VCWD_CHDIR(old_cwd)); >> + } >> + free_alloca(old_cwd, use_heap); >> +#endif >> } >> >> if (decline) { >> >> -- >> PHP CVS Mailing List (http://www.php.net/) >> To unsubscribe, visit: http://www.php.net/unsub.php > > -- > Moriyoshi Koizumi > m...@mozo.jp > > > > > -- > PHP CVS Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > >
-- Pierre @pierrejoye | http://blog.thepimp.net | http://www.libgd.org -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php