Skip to content

Commit 732243f

Browse files
committed
ext/standard: Refactor php_stat() API
1 parent d3c95d1 commit 732243f

1 file changed

Lines changed: 5 additions & 14 deletions

File tree

ext/standard/filestat.c

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -730,14 +730,12 @@ PHPAPI void php_stat(zend_string *filename, int type, zval *return_value)
730730
const char *local = NULL;
731731
php_stream_wrapper *wrapper = NULL;
732732

733+
ZEND_ASSERT(!zend_str_has_nul_byte(filename));
734+
/* Quick check for empty file paths */
735+
if (!ZSTR_LEN(filename)) {
736+
RETURN_FALSE;
737+
}
733738
if (IS_ACCESS_CHECK(type)) {
734-
if (!ZSTR_LEN(filename) || zend_str_has_nul_byte(filename)) {
735-
if (ZSTR_LEN(filename) && !IS_EXISTS_CHECK(type)) {
736-
php_error_docref(NULL, E_WARNING, "Filename contains null byte");
737-
}
738-
RETURN_FALSE;
739-
}
740-
741739
if ((wrapper = php_stream_locate_url_wrapper(ZSTR_VAL(filename), &local, 0)) == &php_plain_files_wrapper
742740
&& php_check_open_basedir(local)) {
743741
RETURN_FALSE;
@@ -799,13 +797,6 @@ PHPAPI void php_stat(zend_string *filename, int type, zval *return_value)
799797
}
800798

801799
if (!wrapper) {
802-
if (!ZSTR_LEN(filename) || zend_str_has_nul_byte(filename)) {
803-
if (ZSTR_LEN(filename) && !IS_EXISTS_CHECK(type)) {
804-
php_error_docref(NULL, E_WARNING, "Filename contains null byte");
805-
}
806-
RETURN_FALSE;
807-
}
808-
809800
if ((wrapper = php_stream_locate_url_wrapper(ZSTR_VAL(filename), &local, 0)) == &php_plain_files_wrapper
810801
&& php_check_open_basedir(local)) {
811802
RETURN_FALSE;

0 commit comments

Comments
 (0)