cellog Fri Jun 13 22:07:45 2008 UTC Added files: (Branch: PHP_5_3) /php-src/ext/phar/tests/tar phar_setsignaturealgo2.phpt require_hash.phpt
Modified files: /php-src/ext/phar phar.phar phar_internal.h phar_object.c tar.c util.c /php-src/ext/phar/tests badparameters.phpt phar_convert_again.phpt phar_setsignaturealgo2.phpt stat2.phpt stat2_5.3.phpt zf_test.phpt /php-src/ext/phar/tests/tar bignames.phpt links.phpt links3.phpt links4.phpt links5.phpt tar_003.phpt tar_004.phpt tar_bz2.phpt tar_gzip.phpt tar_nostub.phpt /php-src/ext/phar/tests/tar/files frontcontroller.phar.tar frontcontroller10.phar.tar frontcontroller11.phar.tar frontcontroller12.phar.tar frontcontroller2.phar.tar frontcontroller3.phar.tar frontcontroller4.phar.tar frontcontroller5.phar.tar frontcontroller6.phar.tar frontcontroller7.phar.tar frontcontroller8.phar.tar frontcontroller9.phar.tar Log: [DOC] implement full signature support for tar-based archives. By default, data archives do not have a signature, but can have one set via setSignatureAlgorithm()
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar.phar?r1=1.7.2.13&r2=1.7.2.14&diff_format=u Index: php-src/ext/phar/phar.phar http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar_internal.h?r1=1.109.2.10&r2=1.109.2.11&diff_format=u Index: php-src/ext/phar/phar_internal.h diff -u php-src/ext/phar/phar_internal.h:1.109.2.10 php-src/ext/phar/phar_internal.h:1.109.2.11 --- php-src/ext/phar/phar_internal.h:1.109.2.10 Fri Jun 13 20:15:19 2008 +++ php-src/ext/phar/phar_internal.h Fri Jun 13 22:07:44 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: phar_internal.h,v 1.109.2.10 2008/06/13 20:15:19 cellog Exp $ */ +/* $Id: phar_internal.h,v 1.109.2.11 2008/06/13 22:07:44 cellog Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -420,7 +420,7 @@ int phar_free_alias(phar_archive_data *phar, char *alias, int alias_len TSRMLS_DC); int phar_get_archive(phar_archive_data **archive, char *fname, int fname_len, char *alias, int alias_len, char **error TSRMLS_DC); int phar_open_parsed_phar(char *fname, int fname_len, char *alias, int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC); -int phar_verify_signature(php_stream *fp, size_t end_of_phar, int sig_type, char *sig, int sig_len, char *fname, char **signature, int *signature_len, char **error TSRMLS_DC); +int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_type, char *sig, int sig_len, char *fname, char **signature, int *signature_len, char **error TSRMLS_DC); int phar_create_signature(phar_archive_data *phar, php_stream *fp, char **signature, int *signature_length, char **error TSRMLS_DC); /* utility functions */ http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar_object.c?r1=1.266.2.18&r2=1.266.2.19&diff_format=u Index: php-src/ext/phar/phar_object.c diff -u php-src/ext/phar/phar_object.c:1.266.2.18 php-src/ext/phar/phar_object.c:1.266.2.19 --- php-src/ext/phar/phar_object.c:1.266.2.18 Fri Jun 13 20:15:19 2008 +++ php-src/ext/phar/phar_object.c Fri Jun 13 22:07:44 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: phar_object.c,v 1.266.2.18 2008/06/13 20:15:19 cellog Exp $ */ +/* $Id: phar_object.c,v 1.266.2.19 2008/06/13 22:07:44 cellog Exp $ */ #include "phar_internal.h" #include "func_interceptors.h" @@ -2707,11 +2707,6 @@ "Cannot set signature algorithm, phar is read-only"); return; } - if (phar_obj->arc.archive->is_tar) { - zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC, - "Cannot set signature algorithm, not possible with tar-based phar archives"); - return; - } if (phar_obj->arc.archive->is_zip) { zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC, "Cannot set signature algorithm, not possible with zip-based phar archives"); http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tar.c?r1=1.55.2.5&r2=1.55.2.6&diff_format=u Index: php-src/ext/phar/tar.c diff -u php-src/ext/phar/tar.c:1.55.2.5 php-src/ext/phar/tar.c:1.55.2.6 --- php-src/ext/phar/tar.c:1.55.2.5 Thu Jun 12 18:56:23 2008 +++ php-src/ext/phar/tar.c Fri Jun 13 22:07:44 2008 @@ -243,6 +243,86 @@ size = entry.uncompressed_filesize = entry.compressed_filesize = phar_tar_number(hdr->size, sizeof(hdr->size)); + if (((!old && hdr->prefix[0] == 0) || old) && strlen(hdr->name) == sizeof(".phar/signature.bin")-1 && !strncmp(hdr->name, ".phar/signature.bin", sizeof(".phar/signature.bin")-1)) { + size_t read; + if (size > 511) { + if (error) { + spprintf(error, 4096, "phar error: tar-based phar \"%s\" has signature that is larger than 511 bytes, cannot process", fname); + } +bail: + php_stream_close(fp); + zend_hash_destroy(&myphar->manifest); + myphar->manifest.arBuckets = 0; + zend_hash_destroy(&myphar->mounted_dirs); + myphar->mounted_dirs.arBuckets = 0; + pefree(myphar, myphar->is_persistent); + return FAILURE; + } + read = php_stream_read(fp, buf, size); + if (read != size) { + if (error) { + spprintf(error, 4096, "phar error: tar-based phar \"%s\" signature cannot be read", fname); + } + goto bail; + } +#ifdef WORDS_BIGENDIAN +# define PHAR_GET_32(buffer) \ + (((((unsigned char*)(buffer))[3]) << 24) \ + | ((((unsigned char*)(buffer))[2]) << 16) \ + | ((((unsigned char*)(buffer))[1]) << 8) \ + | (((unsigned char*)(buffer))[0])) +#else +# define PHAR_GET_32(buffer) (php_uint32) *(buffer) +#endif + if (FAILURE == phar_verify_signature(fp, php_stream_tell(fp) - size - 512, PHAR_GET_32(buf), buf + 8, PHAR_GET_32(buf + 4), fname, &myphar->signature, &myphar->sig_len, error TSRMLS_CC)) { + if (error) { + char *save = *error; + spprintf(error, 4096, "phar error: tar-based phar \"%s\" signature cannot be verified: %s", fname, save); + efree(save); + } + goto bail; + } + /* signature checked out, let's ensure this is the last file in the phar */ + size = ((size+511)&~511) + 512; + if (((hdr->typeflag == 0) || (hdr->typeflag == TAR_FILE)) && size > 0) { + /* this is not good enough - seek succeeds even on truncated tars */ + php_stream_seek(fp, size, SEEK_CUR); + if ((uint)php_stream_tell(fp) > totalsize) { + if (error) { + spprintf(error, 4096, "phar error: \"%s\" is a corrupted tar file (truncated)", fname); + } + php_stream_close(fp); + zend_hash_destroy(&myphar->manifest); + myphar->manifest.arBuckets = 0; + zend_hash_destroy(&myphar->mounted_dirs); + myphar->mounted_dirs.arBuckets = 0; + pefree(myphar, myphar->is_persistent); + return FAILURE; + } + } + read = php_stream_read(fp, buf, sizeof(buf)); + if (read != sizeof(buf)) { + if (error) { + spprintf(error, 4096, "phar error: \"%s\" is a corrupted tar file (truncated)", fname); + } + php_stream_close(fp); + zend_hash_destroy(&myphar->manifest); + myphar->manifest.arBuckets = 0; + zend_hash_destroy(&myphar->mounted_dirs); + myphar->mounted_dirs.arBuckets = 0; + pefree(myphar, myphar->is_persistent); + return FAILURE; + } + hdr = (tar_header*) buf; + sum1 = phar_tar_number(hdr->checksum, sizeof(hdr->checksum)); + if (sum1 == 0 && phar_tar_checksum(buf, sizeof(buf)) == 0) { + break; + } + if (error) { + spprintf(error, 4096, "phar error: \"%s\" has entries after signature, invalid phar", fname); + } + goto bail; + } if (!old && hdr->prefix[0] != 0) { char name[256]; @@ -419,6 +499,21 @@ return FAILURE; } } while (read != 0); + + /* ensure signature set */ + if (PHAR_G(require_hash) && !myphar->signature) { + php_stream_close(fp); + zend_hash_destroy(&myphar->manifest); + myphar->manifest.arBuckets = 0; + zend_hash_destroy(&myphar->mounted_dirs); + myphar->mounted_dirs.arBuckets = 0; + pefree(myphar, myphar->is_persistent); + if (error) { + spprintf(error, 0, "tar-based phar \"%s\" does not have a signature", fname); + } + return FAILURE; + } + myphar->fname = pestrndup(fname, fname_len, myphar->is_persistent); #ifdef PHP_WIN32 phar_unixify_path_separators(myphar->fname, fname_len); @@ -712,9 +807,9 @@ phar_entry_info entry = {0}; static const char newstub[] = "<?php // tar-based phar archive stub file\n__HALT_COMPILER();"; php_stream *oldfile, *newfile, *stubfile; - int closeoldfile, free_user_stub; + int closeoldfile, free_user_stub, signature_length; struct _phar_pass_tar_info pass; - char *buf; + char *buf, *signature, sigbuf[8]; entry.flags = PHAR_ENT_PERM_DEF_FILE; entry.timestamp = time(NULL); @@ -734,7 +829,6 @@ entry.filename = estrndup(".phar/alias.txt", sizeof(".phar/alias.txt")-1); entry.filename_len = sizeof(".phar/alias.txt")-1; entry.fp = php_stream_fopen_tmpfile(); - entry.crc32 = phar_tar_checksum(phar->alias, phar->alias_len); if (phar->alias_len != (int)php_stream_write(entry.fp, phar->alias, phar->alias_len)) { if (error) { spprintf(error, 0, "unable to set alias in tar-based phar \"%s\"", phar->fname); @@ -926,6 +1020,62 @@ zend_hash_apply_with_argument(&phar->manifest, (apply_func_arg_t) phar_tar_writeheaders, (void *) &pass TSRMLS_CC); + /* add signature for executable tars or tars explicitly set with setSignatureAlgorithm */ + if (!phar->is_data || phar->sig_flags) { + if (FAILURE == phar_create_signature(phar, newfile, &signature, &signature_length, error TSRMLS_CC)) { + if (error) { + char *save = *error; + spprintf(error, 0, "phar error: unable to write signature to tar-based phar: %s", save); + efree(save); + } + if (closeoldfile) { + php_stream_close(oldfile); + } + php_stream_close(newfile); + return EOF; + } + entry.filename = ".phar/signature.bin"; + entry.filename_len = sizeof(".phar/signature.bin")-1; + entry.fp = php_stream_fopen_tmpfile(); + +#ifdef WORDS_BIGENDIAN +# define PHAR_SET_32(var, buffer) \ + *(php_uint32 *)(var) = (((((unsigned char*)(buffer))[3]) << 24) \ + | ((((unsigned char*)(buffer))[2]) << 16) \ + | ((((unsigned char*)(buffer))[1]) << 8) \ + | (((unsigned char*)(buffer))[0])) +#else +# define PHAR_SET_32(var, buffer) *(php_uint32 *)(var) = (php_uint32) (buffer) +#endif + PHAR_SET_32(sigbuf, phar->sig_flags); + PHAR_SET_32(sigbuf + 4, signature_length); + if (8 != php_stream_write(entry.fp, sigbuf, 8) || signature_length != php_stream_write(entry.fp, signature, signature_length)) { + efree(signature); + if (error) { + spprintf(error, 0, "phar error: unable to write signature to tar-based phar %s", phar->fname); + } + if (closeoldfile) { + php_stream_close(oldfile); + } + php_stream_close(newfile); + return EOF; + } + efree(signature); + + entry.uncompressed_filesize = entry.compressed_filesize = signature_length + 8; + /* throw out return value and write the signature */ + entry.filename_len = phar_tar_writeheaders((void *)&entry, (void *)&pass); + + if (error && *error) { + if (closeoldfile) { + php_stream_close(oldfile); + } + /* error is set by writeheaders */ + php_stream_close(newfile); + return EOF; + } + } /* signature */ + /* add final zero blocks */ buf = (char *) ecalloc(1024, 1); php_stream_write(newfile, buf, 1024); http://cvs.php.net/viewvc.cgi/php-src/ext/phar/util.c?r1=1.55.2.7&r2=1.55.2.8&diff_format=u Index: php-src/ext/phar/util.c diff -u php-src/ext/phar/util.c:1.55.2.7 php-src/ext/phar/util.c:1.55.2.8 --- php-src/ext/phar/util.c:1.55.2.7 Fri Jun 13 20:15:19 2008 +++ php-src/ext/phar/util.c Fri Jun 13 22:07:44 2008 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: util.c,v 1.55.2.7 2008/06/13 20:15:19 cellog Exp $ */ +/* $Id: util.c,v 1.55.2.8 2008/06/13 22:07:44 cellog Exp $ */ #include "phar_internal.h" #ifdef PHAR_HAVE_OPENSSL @@ -1466,7 +1466,7 @@ } #endif /* #ifndef PHAR_HAVE_OPENSSL */ -int phar_verify_signature(php_stream *fp, size_t end_of_phar, int sig_type, char *sig, int sig_len, char *fname, char **signature, int *signature_len, char **error TSRMLS_DC) /* {{{ */ +int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_type, char *sig, int sig_len, char *fname, char **signature, int *signature_len, char **error TSRMLS_DC) /* {{{ */ { int read_size, len; off_t read_len; http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/badparameters.phpt?r1=1.3.2.1&r2=1.3.2.2&diff_format=u Index: php-src/ext/phar/tests/badparameters.phpt diff -u php-src/ext/phar/tests/badparameters.phpt:1.3.2.1 php-src/ext/phar/tests/badparameters.phpt:1.3.2.2 --- php-src/ext/phar/tests/badparameters.phpt:1.3.2.1 Thu May 15 23:46:29 2008 +++ php-src/ext/phar/tests/badparameters.phpt Fri Jun 13 22:07:44 2008 @@ -77,11 +77,6 @@ echo $e->getMessage() . "\n"; } try { -$b->setSignatureAlgorithm(Phar::MD5); -} catch (Exception $e) { -echo $e->getMessage() . "\n"; -} -try { $c->setSignatureAlgorithm(Phar::MD5); } catch (Exception $e) { echo $e->getMessage() . "\n"; @@ -165,7 +160,6 @@ Warning: Phar::setDefaultStub() expects parameter 1 to be string, array given in %sbadparameters.php on line %d Cannot change stub: phar.readonly=1 Cannot set signature algorithm, phar is read-only -Cannot set signature algorithm, not possible with tar-based phar archives Cannot set signature algorithm, not possible with zip-based phar archives Warning: Phar::compress() expects parameter 1 to be long, array given in %sbadparameters.php on line %d http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/phar_convert_again.phpt?r1=1.13&r2=1.13.2.1&diff_format=u Index: php-src/ext/phar/tests/phar_convert_again.phpt diff -u php-src/ext/phar/tests/phar_convert_again.phpt:1.13 php-src/ext/phar/tests/phar_convert_again.phpt:1.13.2.1 --- php-src/ext/phar/tests/phar_convert_again.phpt:1.13 Wed May 7 17:24:21 2008 +++ php-src/ext/phar/tests/phar_convert_again.phpt Fri Jun 13 22:07:44 2008 @@ -140,12 +140,6 @@ echo $e->getMessage() . "\n"; } try { -$data->setSignatureAlgorithm(Phar::MD5); -} catch (Exception $e) { -echo $e->getMessage() . "\n"; -} - -try { $tgz->convertToData(Phar::TAR, Phar::GZ, '.phar.tgz.oops'); } catch (Exception $e) { echo $e->getMessage() . "\n"; @@ -211,7 +205,6 @@ A Phar stub cannot be set in a plain tar archive A Phar alias cannot be set in a plain tar archive A Phar stub cannot be set in a plain tar archive -Cannot set signature algorithm, not possible with tar-based phar archives data phar "%sphar_convert_again2.phar.tgz.oops" has invalid extension phar.tgz.oops phar "%sphar_convert_again2.tgz.oops" has invalid extension tgz.oops data phar "%sphar_convert_again2.phar/.tgz.oops" has invalid extension phar/.tgz.oops http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/phar_setsignaturealgo2.phpt?r1=1.3.2.1&r2=1.3.2.2&diff_format=u Index: php-src/ext/phar/tests/phar_setsignaturealgo2.phpt diff -u php-src/ext/phar/tests/phar_setsignaturealgo2.phpt:1.3.2.1 php-src/ext/phar/tests/phar_setsignaturealgo2.phpt:1.3.2.2 --- php-src/ext/phar/tests/phar_setsignaturealgo2.phpt:1.3.2.1 Sun Jun 1 04:21:26 2008 +++ php-src/ext/phar/tests/phar_setsignaturealgo2.phpt Fri Jun 13 22:07:44 2008 @@ -10,7 +10,7 @@ --FILE-- <?php $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar'; -$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar'); +$p = new Phar($fname); $p['file1.txt'] = 'hi'; var_dump($p->getSignature()); $p->setSignatureAlgorithm(Phar::MD5); @@ -42,7 +42,7 @@ ===DONE=== --CLEAN-- <?php -unlink(dirname(__FILE__) . '/brandnewphar.phar'); +unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar'); ?> --EXPECTF-- array(2) { http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/stat2.phpt?r1=1.2&r2=1.2.2.1&diff_format=u Index: php-src/ext/phar/tests/stat2.phpt diff -u php-src/ext/phar/tests/stat2.phpt:1.2 php-src/ext/phar/tests/stat2.phpt:1.2.2.1 --- php-src/ext/phar/tests/stat2.phpt:1.2 Sun May 11 19:41:44 2008 +++ php-src/ext/phar/tests/stat2.phpt Fri Jun 13 22:07:44 2008 @@ -5,6 +5,7 @@ <?php if (substr(phpversion(), 0, 3) != '5.2') die("skip PHP 5.2 required for this test");?> --INI-- phar.readonly=0 +phar.require_hash=0 --FILE-- <?php Phar::interceptFileFuncs(); http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/stat2_5.3.phpt?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/stat2_5.3.phpt diff -u php-src/ext/phar/tests/stat2_5.3.phpt:1.1 php-src/ext/phar/tests/stat2_5.3.phpt:1.1.2.1 --- php-src/ext/phar/tests/stat2_5.3.phpt:1.1 Sun May 11 19:41:44 2008 +++ php-src/ext/phar/tests/stat2_5.3.phpt Fri Jun 13 22:07:44 2008 @@ -5,6 +5,7 @@ <?php if (substr(phpversion(), 0, 3) == '5.2') die("skip PHP 5.3+ required for this test");?> --INI-- phar.readonly=0 +phar.require_hash=0 --FILE-- <?php Phar::interceptFileFuncs(); http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/zf_test.phpt?r1=1.10.2.2&r2=1.10.2.3&diff_format=u Index: php-src/ext/phar/tests/zf_test.phpt diff -u php-src/ext/phar/tests/zf_test.phpt:1.10.2.2 php-src/ext/phar/tests/zf_test.phpt:1.10.2.3 --- php-src/ext/phar/tests/zf_test.phpt:1.10.2.2 Thu May 15 16:09:01 2008 +++ php-src/ext/phar/tests/zf_test.phpt Fri Jun 13 22:07:44 2008 @@ -5,6 +5,7 @@ <?php if (!extension_loaded("zlib")) die("skip zlib not available"); ?> --INI-- phar.readonly=0 +phar.require_hash=0 --FILE-- <?php http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/bignames.phpt?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/bignames.phpt diff -u php-src/ext/phar/tests/tar/bignames.phpt:1.1 php-src/ext/phar/tests/tar/bignames.phpt:1.1.2.1 --- php-src/ext/phar/tests/tar/bignames.phpt:1.1 Mon Apr 21 06:33:48 2008 +++ php-src/ext/phar/tests/tar/bignames.phpt Fri Jun 13 22:07:44 2008 @@ -2,6 +2,8 @@ Phar: tar with huge filenames --SKIPIF-- <?php if (!extension_loaded("phar")) die("skip"); ?> +--INI-- +phar.require_hash=0 --FILE-- <?php $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.tar'; http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/links.phpt?r1=1.4&r2=1.4.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/links.phpt diff -u php-src/ext/phar/tests/tar/links.phpt:1.4 php-src/ext/phar/tests/tar/links.phpt:1.4.2.1 --- php-src/ext/phar/tests/tar/links.phpt:1.4 Mon May 12 00:45:04 2008 +++ php-src/ext/phar/tests/tar/links.phpt Fri Jun 13 22:07:44 2008 @@ -2,6 +2,8 @@ Phar: tar with hard link and symbolic link --SKIPIF-- <?php if (!extension_loaded("phar")) die("skip"); ?> +--INI-- +phar.require_hash=0 --FILE-- <?php $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.tar'; http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/links3.phpt?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/links3.phpt diff -u php-src/ext/phar/tests/tar/links3.phpt:1.1 php-src/ext/phar/tests/tar/links3.phpt:1.1.2.1 --- php-src/ext/phar/tests/tar/links3.phpt:1.1 Sun May 11 22:59:15 2008 +++ php-src/ext/phar/tests/tar/links3.phpt Fri Jun 13 22:07:44 2008 @@ -2,6 +2,8 @@ Phar: tar with link to absolute path --SKIPIF-- <?php if (!extension_loaded("phar")) die("skip"); ?> +--INI-- +phar.require_hash=0 --FILE-- <?php try { http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/links4.phpt?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/links4.phpt diff -u php-src/ext/phar/tests/tar/links4.phpt:1.1 php-src/ext/phar/tests/tar/links4.phpt:1.1.2.1 --- php-src/ext/phar/tests/tar/links4.phpt:1.1 Sun May 11 23:03:55 2008 +++ php-src/ext/phar/tests/tar/links4.phpt Fri Jun 13 22:07:44 2008 @@ -2,6 +2,8 @@ Phar: tar with link to root directory file from root directory file --SKIPIF-- <?php if (!extension_loaded("phar")) die("skip"); ?> +--INI-- +phar.require_hash=0 --FILE-- <?php try { http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/links5.phpt?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/links5.phpt diff -u php-src/ext/phar/tests/tar/links5.phpt:1.1 php-src/ext/phar/tests/tar/links5.phpt:1.1.2.1 --- php-src/ext/phar/tests/tar/links5.phpt:1.1 Sun May 11 23:07:11 2008 +++ php-src/ext/phar/tests/tar/links5.phpt Fri Jun 13 22:07:44 2008 @@ -2,6 +2,8 @@ Phar: tar with relative link to subdirectory file from subdirectory file --SKIPIF-- <?php if (!extension_loaded("phar")) die("skip"); ?> +--INI-- +phar.require_hash=0 --FILE-- <?php try { http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/tar_003.phpt?r1=1.5.2.1&r2=1.5.2.2&diff_format=u Index: php-src/ext/phar/tests/tar/tar_003.phpt diff -u php-src/ext/phar/tests/tar/tar_003.phpt:1.5.2.1 php-src/ext/phar/tests/tar/tar_003.phpt:1.5.2.2 --- php-src/ext/phar/tests/tar/tar_003.phpt:1.5.2.1 Thu May 15 16:09:01 2008 +++ php-src/ext/phar/tests/tar/tar_003.phpt Fri Jun 13 22:07:44 2008 @@ -5,6 +5,7 @@ <?php if (!extension_loaded("spl")) die("skip SPL not available"); ?> --INI-- phar.readonly=0 +phar.require_hash=0 --FILE-- <?php include dirname(__FILE__) . '/files/tarmaker.php.inc'; http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/tar_004.phpt?r1=1.3&r2=1.3.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/tar_004.phpt diff -u php-src/ext/phar/tests/tar/tar_004.phpt:1.3 php-src/ext/phar/tests/tar/tar_004.phpt:1.3.2.1 --- php-src/ext/phar/tests/tar/tar_004.phpt:1.3 Tue Feb 12 16:39:58 2008 +++ php-src/ext/phar/tests/tar/tar_004.phpt Fri Jun 13 22:07:44 2008 @@ -5,6 +5,7 @@ <?php if (!extension_loaded("spl")) die("skip SPL not available"); ?> --INI-- phar.readonly=0 +phar.require_hash=0 --FILE-- <?php include dirname(__FILE__) . '/files/tarmaker.php.inc'; http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/tar_bz2.phpt?r1=1.3&r2=1.3.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/tar_bz2.phpt diff -u php-src/ext/phar/tests/tar/tar_bz2.phpt:1.3 php-src/ext/phar/tests/tar/tar_bz2.phpt:1.3.2.1 --- php-src/ext/phar/tests/tar/tar_bz2.phpt:1.3 Fri May 2 05:05:54 2008 +++ php-src/ext/phar/tests/tar/tar_bz2.phpt Fri Jun 13 22:07:44 2008 @@ -6,6 +6,7 @@ <?php if (!extension_loaded("bz2")) die("skip bz2 not available"); ?> --INI-- phar.readonly=0 +phar.require_hash=0 --FILE-- <?php include dirname(__FILE__) . '/files/tarmaker.php.inc'; http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/tar_gzip.phpt?r1=1.4&r2=1.4.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/tar_gzip.phpt diff -u php-src/ext/phar/tests/tar/tar_gzip.phpt:1.4 php-src/ext/phar/tests/tar/tar_gzip.phpt:1.4.2.1 --- php-src/ext/phar/tests/tar/tar_gzip.phpt:1.4 Fri May 2 05:05:54 2008 +++ php-src/ext/phar/tests/tar/tar_gzip.phpt Fri Jun 13 22:07:44 2008 @@ -7,6 +7,7 @@ <?php if (version_compare(phpversion(), '5.2.6', '<')) die("skip zlib is buggy in PHP < 5.2.6"); ?> --INI-- phar.readonly=0 +phar.require_hash=0 --FILE-- <?php include dirname(__FILE__) . '/files/tarmaker.php.inc'; http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/tar_nostub.phpt?r1=1.5&r2=1.5.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/tar_nostub.phpt diff -u php-src/ext/phar/tests/tar/tar_nostub.phpt:1.5 php-src/ext/phar/tests/tar/tar_nostub.phpt:1.5.2.1 --- php-src/ext/phar/tests/tar/tar_nostub.phpt:1.5 Mon Apr 14 15:58:11 2008 +++ php-src/ext/phar/tests/tar/tar_nostub.phpt Fri Jun 13 22:07:44 2008 @@ -5,6 +5,7 @@ <?php if (!extension_loaded("spl")) die("skip SPL not available"); ?> --INI-- phar.readonly=1 +phar.require_hash=0 --FILE-- <?php include dirname(__FILE__) . '/files/tarmaker.php.inc'; http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/files/frontcontroller.phar.tar?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/files/frontcontroller.phar.tar http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/files/frontcontroller10.phar.tar?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/files/frontcontroller10.phar.tar http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/files/frontcontroller11.phar.tar?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/files/frontcontroller11.phar.tar http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/files/frontcontroller12.phar.tar?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/files/frontcontroller12.phar.tar http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/files/frontcontroller2.phar.tar?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/files/frontcontroller2.phar.tar http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/files/frontcontroller3.phar.tar?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/files/frontcontroller3.phar.tar http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/files/frontcontroller4.phar.tar?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/files/frontcontroller4.phar.tar http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/files/frontcontroller5.phar.tar?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/files/frontcontroller5.phar.tar http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/files/frontcontroller6.phar.tar?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/files/frontcontroller6.phar.tar http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/files/frontcontroller7.phar.tar?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/files/frontcontroller7.phar.tar http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/files/frontcontroller8.phar.tar?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/files/frontcontroller8.phar.tar http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/files/frontcontroller9.phar.tar?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/phar/tests/tar/files/frontcontroller9.phar.tar http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/phar_setsignaturealgo2.phpt?view=markup&rev=1.1 Index: php-src/ext/phar/tests/tar/phar_setsignaturealgo2.phpt +++ php-src/ext/phar/tests/tar/phar_setsignaturealgo2.phpt http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/require_hash.phpt?view=markup&rev=1.1 Index: php-src/ext/phar/tests/tar/require_hash.phpt +++ php-src/ext/phar/tests/tar/require_hash.phpt