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;
}
/* }}} */