summaryrefslogtreecommitdiff
path: root/ext/phar
diff options
context:
space:
mode:
Diffstat (limited to 'ext/phar')
-rw-r--r--ext/phar/tests/mkdir.phpt2
-rw-r--r--ext/phar/util.c6
2 files changed, 6 insertions, 2 deletions
diff --git a/ext/phar/tests/mkdir.phpt b/ext/phar/tests/mkdir.phpt
index 2adf1ccd28..af8bceb32c 100644
--- a/ext/phar/tests/mkdir.phpt
+++ b/ext/phar/tests/mkdir.phpt
@@ -17,6 +17,8 @@ mkdir($pname . '/a');
rmdir('phar://');
rmdir('phar://foo.phar');
rmdir($pname . '/a');
+$a->addEmptyDir('bb');
+$a->addEmptyDir('bb');
?>
===DONE===
--CLEAN--
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);