From 22f20e2868452493cebfc1a80858552055c9b764 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Thu, 9 Jun 2016 13:39:19 +0200 Subject: [PATCH] add flags to suppress the verbosity --- main/php_open_temporary_file.c | 9 ++++++--- main/php_open_temporary_file.h | 5 ++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/main/php_open_temporary_file.c b/main/php_open_temporary_file.c index ee752b98ff..caddf1b390 100644 --- a/main/php_open_temporary_file.c +++ b/main/php_open_temporary_file.c @@ -19,6 +19,7 @@ /* $Id$ */ #include "php.h" +#include "php_open_temporary_file.h" #include #include @@ -249,7 +250,7 @@ PHPAPI const char* php_get_temporary_directory(void) * This function should do its best to return a file pointer to a newly created * unique file, on every platform. */ -PHPAPI int php_open_temporary_fd_ex(const char *dir, const char *pfx, zend_string **opened_path_p, zend_bool open_basedir_check) +PHPAPI int php_open_temporary_fd_ex(const char *dir, const char *pfx, zend_string **opened_path_p, uint32_t flags) { int fd; const char *temp_dir; @@ -265,7 +266,7 @@ 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' && (!open_basedir_check || !php_check_open_basedir(temp_dir))) { + if (temp_dir && *temp_dir != '\0' && (!(flags & PHP_TMP_FILE_OPEN_BASEDIR_CHECK) || !php_check_open_basedir(temp_dir))) { return php_do_open_temporary_file(temp_dir, pfx, opened_path_p); } else { return -1; @@ -276,7 +277,9 @@ def_tmp: fd = php_do_open_temporary_file(dir, pfx, opened_path_p); if (fd == -1) { /* Use default temporary directory. */ - php_error_docref(NULL, E_NOTICE, "file created in the system's temporary directory"); + if (!(flags & PHP_TMP_FILE_SILENT)) { + php_error_docref(NULL, E_NOTICE, "file created in the system's temporary directory"); + } goto def_tmp; } return fd; diff --git a/main/php_open_temporary_file.h b/main/php_open_temporary_file.h index fa8649aa70..f82f577c75 100644 --- a/main/php_open_temporary_file.h +++ b/main/php_open_temporary_file.h @@ -21,9 +21,12 @@ #ifndef PHP_OPEN_TEMPORARY_FILE_H #define PHP_OPEN_TEMPORARY_FILE_H +#define PHP_TMP_FILE_OPEN_BASEDIR_CHECK (1<<0) +#define PHP_TMP_FILE_SILENT (1<<1) + BEGIN_EXTERN_C() PHPAPI FILE *php_open_temporary_file(const char *dir, const char *pfx, zend_string **opened_path_p); -PHPAPI int php_open_temporary_fd_ex(const char *dir, const char *pfx, zend_string **opened_path_p, zend_bool open_basedir_check); +PHPAPI int php_open_temporary_fd_ex(const char *dir, const char *pfx, zend_string **opened_path_p, uint32_t flags); PHPAPI int php_open_temporary_fd(const char *dir, const char *pfx, zend_string **opened_path_p); PHPAPI const char *php_get_temporary_directory(void); END_EXTERN_C() -- 2.40.0