[PHP-CVS] [php-src] master: ext/standard: Refactor php_stat() API
[email protected] (Gina Peter Banyard) Thu, 30 Jul 2026 12:23:06 +0000
| Newsgroups | php.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: Gina Peter Banyard (Girgias)
Date: 2026-07-30T12:59:07+01:00
Commit: https://github.com/php/php-src/commit/732243fb662b17daed566eb7b72ee79900158329
Raw diff: https://github.com/php/php-src/commit/732243fb662b17daed566eb7b72ee79900158329.diff
ext/standard: Refactor php_stat() API
Changed paths:
M ext/standard/filestat.c
Diff:
diff --git a/ext/standard/filestat.c b/ext/standard/filestat.c
index de4fcd82a620..96669a809346 100644
--- a/ext/standard/filestat.c
+++ b/ext/standard/filestat.c
@@ -730,14 +730,12 @@ PHPAPI void php_stat(zend_string *filename, int type, zval *return_value)
const char *local = NULL;
php_stream_wrapper *wrapper = NULL;
+ ZEND_ASSERT(!zend_str_has_nul_byte(filename));
+ /* Quick check for empty file paths */
+ if (!ZSTR_LEN(filename)) {
+ RETURN_FALSE;
+ }
if (IS_ACCESS_CHECK(type)) {
- if (!ZSTR_LEN(filename) || zend_str_has_nul_byte(filename)) {
- if (ZSTR_LEN(filename) && !IS_EXISTS_CHECK(type)) {
- php_error_docref(NULL, E_WARNING, "Filename contains null byte");
- }
- RETURN_FALSE;
- }
-
if ((wrapper = php_stream_locate_url_wrapper(ZSTR_VAL(filename), &local, 0)) == &php_plain_files_wrapper
&& php_check_open_basedir(local)) {
RETURN_FALSE;
@@ -799,13 +797,6 @@ PHPAPI void php_stat(zend_string *filename, int type, zval *return_value)
}
if (!wrapper) {
- if (!ZSTR_LEN(filename) || zend_str_has_nul_byte(filename)) {
- if (ZSTR_LEN(filename) && !IS_EXISTS_CHECK(type)) {
- php_error_docref(NULL, E_WARNING, "Filename contains null byte");
- }
- RETURN_FALSE;
- }
-
if ((wrapper = php_stream_locate_url_wrapper(ZSTR_VAL(filename), &local, 0)) == &php_plain_files_wrapper
&& php_check_open_basedir(local)) {
RETURN_FALSE;