Skip to content

Commit eaf92cd

Browse files
committed
ext/standard: Refactor php_stat() API
1 parent b28e7e4 commit eaf92cd

File tree

1 file changed

+5
-14
lines changed

1 file changed

+5
-14
lines changed

ext/standard/filestat.c

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

751+
ZEND_ASSERT(!zend_str_has_nul_byte(filename));
752+
/* Quick check for empty file paths */
753+
if (!ZSTR_LEN(filename)) {
754+
RETURN_FALSE;
755+
}
751756
if (IS_ACCESS_CHECK(type)) {
752-
if (!ZSTR_LEN(filename) || zend_str_has_nul_byte(filename)) {
753-
if (ZSTR_LEN(filename) && !IS_EXISTS_CHECK(type)) {
754-
php_error_docref(NULL, E_WARNING, "Filename contains null byte");
755-
}
756-
RETURN_FALSE;
757-
}
758-
759757
if ((wrapper = php_stream_locate_url_wrapper(ZSTR_VAL(filename), &local, 0)) == &php_plain_files_wrapper
760758
&& php_check_open_basedir(local)) {
761759
RETURN_FALSE;
@@ -817,13 +815,6 @@ PHPAPI void php_stat(zend_string *filename, int type, zval *return_value)
817815
}
818816

819817
if (!wrapper) {
820-
if (!ZSTR_LEN(filename) || zend_str_has_nul_byte(filename)) {
821-
if (ZSTR_LEN(filename) && !IS_EXISTS_CHECK(type)) {
822-
php_error_docref(NULL, E_WARNING, "Filename contains null byte");
823-
}
824-
RETURN_FALSE;
825-
}
826-
827818
if ((wrapper = php_stream_locate_url_wrapper(ZSTR_VAL(filename), &local, 0)) == &php_plain_files_wrapper
828819
&& php_check_open_basedir(local)) {
829820
RETURN_FALSE;

0 commit comments

Comments
 (0)