diff options
| author | Greg Beaver <cellog@php.net> | 2008-04-28 06:03:33 +0000 |
|---|---|---|
| committer | Greg Beaver <cellog@php.net> | 2008-04-28 06:03:33 +0000 |
| commit | fbb2e8ce601b2fcde6e1d9da2060403c16d76b2d (patch) | |
| tree | de879e2a030fde999af279b41bdb00a2ec32f622 /ext/phar/util.c | |
| parent | 62f824b6e1025638ccdba4cef79d3b0b6a8e6917 (diff) | |
| download | php-git-fbb2e8ce601b2fcde6e1d9da2060403c16d76b2d.tar.gz | |
more fixes for PHAR_G(cwd)
Diffstat (limited to 'ext/phar/util.c')
| -rw-r--r-- | ext/phar/util.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/ext/phar/util.c b/ext/phar/util.c index c006fb47a4..fed3b2b6ca 100644 --- a/ext/phar/util.c +++ b/ext/phar/util.c @@ -236,11 +236,20 @@ char *phar_find_in_include_path(char *filename, int filename_len, phar_archive_d efree(entry); try_len = filename_len; test = phar_fix_filepath(estrndup(filename, filename_len), &try_len, 1 TSRMLS_CC); - if (zend_hash_exists(&((*pphar)->manifest), test + 1, try_len - 1)) { - spprintf(&ret, 0, "phar://%s%s", arch, test); - efree(arch); - efree(test); - return ret; + if (*test == '/') { + if (zend_hash_exists(&((*pphar)->manifest), test + 1, try_len - 1)) { + spprintf(&ret, 0, "phar://%s%s", arch, test); + efree(arch); + efree(test); + return ret; + } + } else { + if (zend_hash_exists(&((*pphar)->manifest), test, try_len)) { + spprintf(&ret, 0, "phar://%s/%s", arch, test); + efree(arch); + efree(test); + return ret; + } } } efree(entry); |
