Commit 8bec211b0ce for php.net

commit 8bec211b0ce15f4115f3e0a37d9e1b37d7ea5b45
Author: Gina Peter Banyard <girgias@php.net>
Date:   Thu May 7 18:29:17 2026 +0100

    ext/phar: remove pphar argument of phar_find_in_include_path() (#21975)

    It was always passed a NULL pointer, so just remove it and simplify the implementation of it.

diff --git a/ext/phar/func_interceptors.c b/ext/phar/func_interceptors.c
index 8f5d1ab068f..f6e69f20035 100644
--- a/ext/phar/func_interceptors.c
+++ b/ext/phar/func_interceptors.c
@@ -106,7 +106,7 @@ static zend_string* phar_get_name_for_relative_paths(zend_string *filename, bool

 	zend_string *name = NULL;
 	if (using_include_path) {
-		name = phar_find_in_include_path(filename, NULL);
+		name = phar_find_in_include_path(filename);
 		if (!name) {
 			/* this file is not in the phar, use the original path */
 			zend_string_release_ex(arch, false);
diff --git a/ext/phar/phar.c b/ext/phar/phar.c
index f72a14a5951..b4cdd1577dd 100644
--- a/ext/phar/phar.c
+++ b/ext/phar/phar.c
@@ -3166,7 +3166,7 @@ zend_op_array *(*phar_orig_compile_file)(zend_file_handle *file_handle, int type

 static zend_string *phar_resolve_path(zend_string *filename)
 {
-	zend_string *ret = phar_find_in_include_path(filename, NULL);
+	zend_string *ret = phar_find_in_include_path(filename);
 	if (!ret) {
 		ret = phar_save_resolve_path(filename);
 	}
diff --git a/ext/phar/phar_internal.h b/ext/phar/phar_internal.h
index 2d4a83ae369..d75498f9c95 100644
--- a/ext/phar/phar_internal.h
+++ b/ext/phar/phar_internal.h
@@ -423,7 +423,7 @@ const char *phar_compress_filter(const phar_entry_info *entry, bool return_unkno
 /* void phar_remove_virtual_dirs(phar_archive_data *phar, char *filename, size_t filename_len); */
 void phar_add_virtual_dirs(phar_archive_data *phar, const char *filename, size_t filename_len);
 zend_result phar_mount_entry(phar_archive_data *phar, const char *filename, size_t filename_len, char *path, size_t path_len);
-zend_string *phar_find_in_include_path(const zend_string *file, phar_archive_data **pphar);
+	zend_string *phar_find_in_include_path(const zend_string *file);
 zend_string* phar_fix_filepath(const char *path, size_t path_length, bool use_cwd);
 ZEND_ATTRIBUTE_NONNULL phar_entry_info * phar_open_jit(const phar_archive_data *phar, phar_entry_info *entry, char **error);
 void phar_parse_metadata_lazy(const char *buffer, phar_metadata_tracker *tracker, uint32_t zip_metadata_len, bool persistent);
diff --git a/ext/phar/util.c b/ext/phar/util.c
index e501ccfaceb..c1e752a8e6b 100644
--- a/ext/phar/util.c
+++ b/ext/phar/util.c
@@ -264,19 +264,13 @@ zend_result phar_mount_entry(phar_archive_data *phar, const char *filename, size
 }
 /* }}} */

-zend_string *phar_find_in_include_path(const zend_string *filename, phar_archive_data **pphar) /* {{{ */
+zend_string *phar_find_in_include_path(const zend_string *filename) /* {{{ */
 {
 	zend_string *ret;
 	char *path;
 	zend_string *arch;
 	phar_archive_data *phar;

-	if (pphar) {
-		*pphar = NULL;
-	} else {
-		pphar = &phar;
-	}
-
 	if (!zend_is_executing() || !PHAR_G(cwd)) {
 		return NULL;
 	}
@@ -314,11 +308,7 @@ zend_string *phar_find_in_include_path(const zend_string *filename, phar_archive
 			zend_string_release_ex(arch, false);
 			return NULL;
 		}
-splitted:
-		if (pphar) {
-			*pphar = phar;
-		}
-
+splitted:;
 		zend_string *test = phar_fix_filepath(ZSTR_VAL(filename), ZSTR_LEN(filename), true);
 		if (ZSTR_VAL(test)[0] == '/') {
 			if (zend_hash_str_exists(&(phar->manifest), ZSTR_VAL(test) + 1, ZSTR_LEN(test) - 1)) {
@@ -347,22 +337,6 @@ zend_string *phar_find_in_include_path(const zend_string *filename, phar_archive
 	ret = php_resolve_path(ZSTR_VAL(filename), ZSTR_LEN(filename), path);
 	efree(path);

-	if (ret && zend_string_starts_with_literal_ci(ret, "phar://")) {
-		/* found phar:// */
-		arch = phar_split_fname(ZSTR_VAL(fname), ZSTR_LEN(fname), NULL, 1, 0);
-		if (!arch) {
-			return ret;
-		}
-
-		*pphar = zend_hash_find_ptr(&(PHAR_G(phar_fname_map)), arch);
-
-		if (!*pphar && PHAR_G(manifest_cached)) {
-			*pphar = zend_hash_find_ptr(&cached_phars, arch);
-		}
-
-		zend_string_release_ex(arch, false);
-	}
-
 	return ret;
 }
 /* }}} */