From: Greg Beaver Date: Sat, 26 Apr 2008 17:09:58 +0000 (+0000) Subject: fix buildfromiterator base to exclude directory separator on unix or windows, fix... X-Git-Tag: RELEASE_2_0_0b1~196 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=79a45a9666b16f5a4972081f2213ad137fba210b;p=php fix buildfromiterator base to exclude directory separator on unix or windows, fix 10 test to have new tests --- diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c index 5d01c16188..75542c57e8 100755 --- a/ext/phar/phar_object.c +++ b/ext/phar/phar_object.c @@ -1417,6 +1417,10 @@ phar_spl_fileinfo: return ZEND_HASH_APPLY_KEEP; } str_key = fname + base_len; + if (*str_key == '/' || *str_key == '\\') { + str_key++; + str_key_len--; + } } else { zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC, "Iterator %s returned a path \"%s\" that is not in the base directory \"%s\"", ce->name, fname, base); if (save) { diff --git a/ext/phar/tests/phar_buildfromiterator10.phpt b/ext/phar/tests/phar_buildfromiterator10.phpt index de645363d5..2f70ccdc6b 100644 --- a/ext/phar/tests/phar_buildfromiterator10.phpt +++ b/ext/phar/tests/phar_buildfromiterator10.phpt @@ -27,9 +27,11 @@ unlink(dirname(__FILE__) . '/buildfromiterator.phar'); __HALT_COMPILER(); ?> --EXPECTF-- -array(34) { +array(56) { ["extracted_001.phpt"]=> string(%d) "%sextracted_001.phpt" + ["extracted_001.phpt~"]=> + string(%d) "%sextracted_001.phpt~" ["phar_ctx_001.phpt"]=> string(%d) "%sphar_ctx_001.phpt" ["phar_get_supported_signatures_001.phpt"]=> @@ -38,18 +40,26 @@ array(34) { string(%d) "%sphar_get_supported_signatures_002.phpt" ["phar_oo_001.phpt"]=> string(%d) "%sphar_oo_001.phpt" + ["phar_oo_001.phpt~"]=> + string(%d) "%sphar_oo_001.phpt~" ["phar_oo_002.phpt"]=> string(%d) "%sphar_oo_002.phpt" + ["phar_oo_002.phpt~"]=> + string(%d) "%sphar_oo_002.phpt~" ["phar_oo_003.phpt"]=> string(%d) "%sphar_oo_003.phpt" ["phar_oo_004.phpt"]=> string(%d) "%sphar_oo_004.phpt" ["phar_oo_005.phpt"]=> string(%d) "%sphar_oo_005.phpt" + ["phar_oo_005.phpt~"]=> + string(%d) "%sphar_oo_005.phpt~" ["phar_oo_006.phpt"]=> string(%d) "%sphar_oo_006.phpt" ["phar_oo_007.phpt"]=> string(%d) "%sphar_oo_007.phpt" + ["phar_oo_007.phpt~"]=> + string(%d) "%sphar_oo_007.phpt~" ["phar_oo_008.phpt"]=> string(%d) "%sphar_oo_008.phpt" ["phar_oo_009.phpt"]=> @@ -62,39 +72,73 @@ array(34) { string(%d) "%sphar_oo_012.phpt" ["phar_oo_compressed_001.phpt"]=> string(%d) "%sphar_oo_compressed_001.phpt" + ["phar_oo_compressed_001.phpt~"]=> + string(%d) "%sphar_oo_compressed_001.phpt~" ["phar_oo_compressed_002.phpt"]=> string(%d) "%sphar_oo_compressed_002.phpt" ["phpinfo_001.phpt"]=> string(%d) "%sphpinfo_001.phpt" + ["phpinfo_001.phpt~"]=> + string(%d) "%sphpinfo_001.phpt~" ["phpinfo_002.phpt"]=> string(%d) "%sphpinfo_002.phpt" + ["phpinfo_002.phpt~"]=> + string(%d) "%sphpinfo_002.phpt~" ["phpinfo_003.phpt"]=> string(%d) "%sphpinfo_003.phpt" + ["phpinfo_003.phpt~"]=> + string(%d) "%sphpinfo_003.phpt~" ["phpinfo_004.phpt"]=> string(%d) "%sphpinfo_004.phpt" + ["phpinfo_004.phpt~"]=> + string(%d) "%sphpinfo_004.phpt~" ["tar/tar_001.phpt"]=> string(%d) "%star%ctar_001.phpt" + ["tar/tar_001.phpt~"]=> + string(%d) "%star%ctar_001.phpt~" ["tar/tar_002.phpt"]=> string(%d) "%star%ctar_002.phpt" + ["tar/tar_002.phpt~"]=> + string(%d) "%star%ctar_002.phpt~" ["tar/tar_003.phpt"]=> string(%d) "%star%ctar_003.phpt" ["tar/tar_004.phpt"]=> string(%d) "%star%ctar_004.phpt" + ["tar/tar_004.phpt~"]=> + string(%d) "%star%ctar_004.phpt~" ["zip/corrupt_001.phpt"]=> string(%d) "%szip%ccorrupt_001.phpt" + ["zip/corrupt_001.phpt~"]=> + string(%d) "%szip%ccorrupt_001.phpt~" ["zip/corrupt_002.phpt"]=> string(%d) "%szip%ccorrupt_002.phpt" + ["zip/corrupt_002.phpt~"]=> + string(%d) "%szip%ccorrupt_002.phpt~" ["zip/corrupt_003.phpt"]=> string(%d) "%szip%ccorrupt_003.phpt" + ["zip/corrupt_003.phpt~"]=> + string(%d) "%szip%ccorrupt_003.phpt~" ["zip/corrupt_004.phpt"]=> string(%d) "%szip%ccorrupt_004.phpt" + ["zip/corrupt_004.phpt~"]=> + string(%d) "%szip%ccorrupt_004.phpt~" ["zip/corrupt_005.phpt"]=> string(%d) "%szip%ccorrupt_005.phpt" + ["zip/corrupt_005.phpt~"]=> + string(%d) "%szip%ccorrupt_005.phpt~" ["zip/corrupt_006.phpt"]=> string(%d) "%szip%ccorrupt_006.phpt" + ["zip/corrupt_006.phpt~"]=> + string(%d) "%szip%ccorrupt_006.phpt~" ["zip/corrupt_007.phpt"]=> string(%d) "%szip%ccorrupt_007.phpt" + ["zip/corrupt_007.phpt~"]=> + string(%d) "%szip%ccorrupt_007.phpt~" ["zip/corrupt_008.phpt"]=> string(%d) "%szip%ccorrupt_008.phpt" + ["zip/corrupt_008.phpt~"]=> + string(%d) "%szip%ccorrupt_008.phpt~" + ["zip/tar_001.phpt~"]=> + string(%d) "%szip%ctar_001.phpt~" } ===DONE===