Commit 732243fb662 for php.net

commit 732243fb662b17daed566eb7b72ee79900158329
Author: Gina Peter Banyard <girgias@php.net>
Date:   Thu Jul 17 22:40:05 2025 +0100

    ext/standard: Refactor php_stat() API

diff --git a/ext/standard/filestat.c b/ext/standard/filestat.c
index de4fcd82a62..96669a80934 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;