Re: cvs: php4 /ext/standard basic_functions.c
| From: | Andi Gutmans | Date: | Fri, 16 Aug 2002 15:49:26 +0000 |
| Subject: | Re: cvs: php4 /ext/standard basic_functions.c | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-13416@lists.php.net to get a copy of this message | ||
Phew. I got a shock when I saw (((*varname)->value).str).val :)
Andi
At 10:08 AM 8/16/2002 +0000, Sterling Hughes wrote:
sterling Fri Aug 16 06:08:32 2002 EDTModified files:/php4/ext/standard basic_functions.cLog: clean this up a bit Index: php4/ext/standard/basic_functions.c diff -u php4/ext/standard/basic_functions.c:1.493 php4/ext/standard/basic_functions.c:1.494 --- php4/ext/standard/basic_functions.c:1.493 Thu Aug 15 21:39:10 2002 +++ php4/ext/standard/basic_functions.c Fri Aug 16 06:08:32 2002 @@ -17,7 +17,7 @@+----------------------------------------------------------------------+*/ -/* $Id: basic_functions.c,v 1.493 2002/08/16 01:39:10 iliaa Exp $ */ +/* $Id: basic_functions.c,v 1.494 2002/08/16 10:08:32 sterling Exp $ */ #include "php.h" #include "php_streams.h" @@ -2073,26 +2073,25 @@RETVAL_FALSE; }+#define _CHECK_PATH(var, ini) php_ini_check_path(Z_STRVAL_PP(var), Z_STRLEN_PP(var), ini, sizeof(ini)) +/* safe_mode & basedir check */ - if( - (PG(safe_mode) || PG(open_basedir)) && - ( - php_ini_check_path((((*varname)->value).str).val, (((*varname)->value).str).len, "error_log", sizeof("error_log")) || - php_ini_check_path((((*varname)->value).str).val, (((*varname)->value).str).len, "java.class.path", sizeof("java.class.path")) || - php_ini_check_path((((*varname)->value).str).val, (((*varname)->value).str).len, "java.home", sizeof("java.home")) || - php_ini_check_path((((*varname)->value).str).val, (((*varname)->value).str).len, "java.library.path", sizeof("java.library.path")) || - php_ini_check_path((((*varname)->value).str).val, (((*varname)->value).str).len, "session.save_path", sizeof("session.save_path")) || - php_ini_check_path((((*varname)->value).str).val, (((*varname)->value).str).len, "vpopmail.directory", sizeof("vpopmail.directory")) - ) - ) { - if (PG(safe_mode) &&(!php_checkuid(Z_STRVAL_PP(new_value), NULL, CHECKUID_CHECK_FILE_AND_DIR))) { - zval_dtor(return_value); - RETURN_FALSE; - } + if (PG(safe_mode) || PG(open_basedir)) { + if (_CHECK_PATH(varname, "error_log") || + _CHECK_PATH(varname, "java.class.path") || + _CHECK_PATH(varname, "java.home") || + _CHECK_PATH(varname, "java.library.path") || + _CHECK_PATH(varname, "session.save_path") || + _CHECK_PATH(varname, "vpopmail.directory")) { + if (PG(safe_mode) &&(!php_checkuid(Z_STRVAL_PP(new_value), NULL, CHECKUID_CHECK_FILE_AND_DIR))) { + zval_dtor(return_value); + RETURN_FALSE; + }- if (php_check_open_basedir(Z_STRVAL_PP(new_value) TSRMLS_CC)) { - zval_dtor(return_value); - RETURN_FALSE; + if (php_check_open_basedir(Z_STRVAL_PP(new_value) TSRMLS_CC)) { + zval_dtor(return_value); + RETURN_FALSE; + } } }-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php