[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;