diff --git a/ext/phar/func_interceptors.c b/ext/phar/func_interceptors.c index 8f5d1ab068f1..f6e69f20035c 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 f72a14a59512..b4cdd1577dd0 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 2d4a83ae369c..d75498f9c95a 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 e501ccfaceba..c1e752a8e6b2 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; } /* }}} */