summaryrefslogtreecommitdiff
path: root/main/php_open_temporary_file.c
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2021-01-19 11:44:22 +0100
committerNikita Popov <nikita.ppv@gmail.com>2021-01-19 11:44:22 +0100
commit1bdd8f7ae43874876368d97dd89d88a517a2e80b (patch)
treec0c2151abde9b1a9a66e3dd0113f8fb90fadf878 /main/php_open_temporary_file.c
parentf33105dcb6fb6f59801ebf122fd7223a41fa83aa (diff)
parent5d31ee302db073d5e99cf307315d2d631eaa34a5 (diff)
downloadphp-git-1bdd8f7ae43874876368d97dd89d88a517a2e80b.tar.gz
Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4: Fixed bug #42560
Diffstat (limited to 'main/php_open_temporary_file.c')
-rw-r--r--main/php_open_temporary_file.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/main/php_open_temporary_file.c b/main/php_open_temporary_file.c
index a65b91e84e..761eb3a67f 100644
--- a/main/php_open_temporary_file.c
+++ b/main/php_open_temporary_file.c
@@ -299,13 +299,19 @@ PHPAPI int php_open_temporary_fd_ex(const char *dir, const char *pfx, zend_strin
def_tmp:
temp_dir = php_get_temporary_directory();
- if (temp_dir && *temp_dir != '\0' && (!(flags & PHP_TMP_FILE_OPEN_BASEDIR_CHECK) || !php_check_open_basedir(temp_dir))) {
+ if (temp_dir &&
+ *temp_dir != '\0' &&
+ (!(flags & PHP_TMP_FILE_OPEN_BASEDIR_CHECK_ON_FALLBACK) || !php_check_open_basedir(temp_dir))) {
return php_do_open_temporary_file(temp_dir, pfx, opened_path_p);
} else {
return -1;
}
}
+ if ((flags & PHP_TMP_FILE_OPEN_BASEDIR_CHECK_ON_EXPLICIT_DIR) && php_check_open_basedir(dir)) {
+ return -1;
+ }
+
/* Try the directory given as parameter. */
fd = php_do_open_temporary_file(dir, pfx, opened_path_p);
if (fd == -1) {
@@ -320,7 +326,7 @@ def_tmp:
PHPAPI int php_open_temporary_fd(const char *dir, const char *pfx, zend_string **opened_path_p)
{
- return php_open_temporary_fd_ex(dir, pfx, opened_path_p, 0);
+ return php_open_temporary_fd_ex(dir, pfx, opened_path_p, PHP_TMP_FILE_DEFAULT);
}
PHPAPI FILE *php_open_temporary_file(const char *dir, const char *pfx, zend_string **opened_path_p)