]> granicus.if.org Git - php/commitdiff
fix buildfromiterator base to exclude directory separator on unix or windows, fix...
authorGreg Beaver <cellog@php.net>
Sat, 26 Apr 2008 17:09:58 +0000 (17:09 +0000)
committerGreg Beaver <cellog@php.net>
Sat, 26 Apr 2008 17:09:58 +0000 (17:09 +0000)
ext/phar/phar_object.c
ext/phar/tests/phar_buildfromiterator10.phpt

index 5d01c16188c1f5bb68cde6bfe64cf05a8d38f8b2..75542c57e803264b023d8fe3de6a3d1f56c60435 100755 (executable)
@@ -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) {
index de645363d5b26dd447848e8f7893fe3e0b942538..2f70ccdc6b5020a356e41b94ab5cce942b059015 100644 (file)
@@ -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===