iliaa Sun Oct 20 16:44:11 2002 EDT Modified files: /php4/main streams.c Log: Fixed incorrect handling of files starting with a . Index: php4/main/streams.c diff -u php4/main/streams.c:1.112 php4/main/streams.c:1.113 --- php4/main/streams.c:1.112 Sat Oct 19 09:11:48 2002 +++ php4/main/streams.c Sun Oct 20 16:44:10 2002 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streams.c,v 1.112 2002/10/19 13:11:48 wez Exp $ */ +/* $Id: streams.c,v 1.113 2002/10/20 20:44:10 iliaa Exp $ */ #define _GNU_SOURCE #include "php.h" @@ -1518,7 +1518,16 @@ filename_length = strlen(filename); /* Relative path open */ - if (*filename == '.') { + if (*filename == '.' && (*(filename+1) == '/' || *(filename+1) == '.')) { + /* further checks, we could have ....... filenames */ + ptr = filename + 1; + if (ptr == '.') { + while (*(++ptr) == '.'); + if (ptr != '/') { /* not a relative path after all */ + goto not_relative_path; + } + } + if (php_check_open_basedir(filename TSRMLS_CC)) { return NULL; @@ -1534,6 +1543,8 @@ * files in safe_mode_include_dir (or subdir) are excluded from * safe mode GID/UID checks */ + + not_relative_path: /* Absolute path open */ if (IS_ABSOLUTE_PATH(filename, filename_length)) {
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php