mirror of
https://github.com/php/php-src.git
synced 2026-03-26 17:22:15 +01:00
Fixed incorrect handling of files starting with a .
This commit is contained in:
@@ -1518,7 +1518,16 @@ PHPAPI php_stream *_php_stream_fopen_with_path(char *filename, char *mode, char
|
||||
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;
|
||||
@@ -1535,6 +1544,8 @@ PHPAPI php_stream *_php_stream_fopen_with_path(char *filename, char *mode, char
|
||||
* safe mode GID/UID checks
|
||||
*/
|
||||
|
||||
not_relative_path:
|
||||
|
||||
/* Absolute path open */
|
||||
if (IS_ABSOLUTE_PATH(filename, filename_length)) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user