MFB: Fixed bug #38934 (move_uploaded_file() cannot read uploaded file

outside of open_basedir).
This commit is contained in:
Ilia Alshanetsky 2006-10-13 01:44:42 +00:00
parent ba13b636e3
commit f3eee9d980
2 changed files with 8 additions and 4 deletions

View File

@ -6024,8 +6024,7 @@ PHP_FUNCTION(move_uploaded_file)
VCWD_UNLINK(Z_STRVAL_PP(new_path));
if (rename(Z_STRVAL_PP(path), Z_STRVAL_PP(new_path)) == 0) {
successful = 1;
} else
if (php_copy_file(Z_STRVAL_PP(path), Z_STRVAL_PP(new_path) TSRMLS_CC) == SUCCESS) {
} else if (php_copy_file_ex(Z_STRVAL_PP(path), Z_STRVAL_PP(new_path), STREAM_DISABLE_OPEN_BASEDIR TSRMLS_CC) == SUCCESS) {
VCWD_UNLINK(Z_STRVAL_PP(path));
successful = 1;
}

View File

@ -1799,9 +1799,14 @@ PHP_FUNCTION(copy)
}
/* }}} */
PHPAPI int php_copy_file(char *src, char *dest TSRMLS_DC)
{
return php_copy_file_ex(src, dest, 0 TSRMLS_CC);
}
/* {{{ php_copy_file
*/
PHPAPI int php_copy_file(char *src, char *dest TSRMLS_DC)
PHPAPI int php_copy_file_ex(char *src, char *dest, int src_chk TSRMLS_DC)
{
php_stream *srcstream = NULL, *deststream = NULL;
int ret = FAILURE;
@ -1856,7 +1861,7 @@ no_stat:
}
safe_to_copy:
srcstream = php_stream_open_wrapper(src, "rb", REPORT_ERRORS, NULL);
srcstream = php_stream_open_wrapper(src, "rb", src_chk | REPORT_ERRORS, NULL);
if (!srcstream) {
return ret;