summaryrefslogtreecommitdiff
path: root/ext/phar/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/phar/util.c')
-rw-r--r--ext/phar/util.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/ext/phar/util.c b/ext/phar/util.c
index 0add3b913e..5bdd018fdf 100644
--- a/ext/phar/util.c
+++ b/ext/phar/util.c
@@ -212,7 +212,7 @@ char *phar_find_in_include_path(char *filename, int filename_len, phar_archive_d
{
#if PHP_VERSION_ID >= 50300
char *path, *fname, *arch, *entry, *ret, *test;
- int arch_len, entry_len;
+ int arch_len, entry_len, fname_len;
if (pphar) {
*pphar = NULL;
@@ -222,7 +222,9 @@ char *phar_find_in_include_path(char *filename, int filename_len, phar_archive_d
return phar_save_resolve_path(filename, filename_len TSRMLS_CC);
}
fname = zend_get_executed_filename(TSRMLS_C);
- if (SUCCESS != phar_split_fname(fname, strlen(fname), &arch, &arch_len, &entry, &entry_len, 1, 0 TSRMLS_CC)) {
+ fname_len = strlen(fname);
+
+ if (fname_len < 7 || memcmp(fname, "phar://", 7) || SUCCESS != phar_split_fname(fname, strlen(fname), &arch, &arch_len, &entry, &entry_len, 1, 0 TSRMLS_CC)) {
return phar_save_resolve_path(filename, filename_len TSRMLS_CC);
}
efree(entry);