iliaa Sat Nov 16 19:07:33 2002 EDT Modified files: (Branch: PHP_4_3) /php4/main streams.c Log: MFH Index: php4/main/streams.c diff -u php4/main/streams.c:1.125.2.6 php4/main/streams.c:1.125.2.7 --- php4/main/streams.c:1.125.2.6 Sat Nov 16 18:35:30 2002 +++ php4/main/streams.c Sat Nov 16 19:07:33 2002 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streams.c,v 1.125.2.6 2002/11/16 23:35:30 wez Exp $ */ +/* $Id: streams.c,v 1.125.2.7 2002/11/17 00:07:33 iliaa Exp $ */ #define _GNU_SOURCE #include "php.h" @@ -1590,6 +1590,32 @@ return php_stream_fopen_rel(filename, mode, opened_path, options); } + +#ifdef PHP_WIN32 + if (IS_SLASH(filename[0])) { + int cwd_len; + char *cwd; + cwd = virtual_getcwd_ex(&cwd_len TSRMLS_CC); + /* getcwd() will return always return [DRIVE_LETTER]:/) on windows. */ + *(cwd+3) = '\0'; + + snprintf(trypath, MAXPATHLEN, "%s%s", cwd, filename); + + free(cwd); + + if (php_check_open_basedir(trypath TSRMLS_CC)) { + return NULL; + } + if ((php_check_safe_mode_include_dir(trypath TSRMLS_CC)) == 0) { + return php_stream_fopen_rel(trypath, mode, opened_path, +options); + } + if (PG(safe_mode) && (!php_checkuid(trypath, mode, +CHECKUID_CHECK_MODE_PARAM))) { + return NULL; + } + + return php_stream_fopen_rel(trypath, mode, opened_path, options); + } +#endif if (!path || (path && !*path)) {
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php