mirror of
https://github.com/bdnugget/php-src.git
synced 2026-11-08 01:37:30 +00:00
Fixed incorrect handling of files starting with a .
This commit is contained in:
1 parent
c33a695f85
commit
fef922307c
1 file changed
+12
-1
+12
-1
@@ -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