sfox Mon Jul 7 01:11:08 2008 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/phar phar_object.c Log: - We forgot to check that the phar exists before trying to extract files from it :) http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar_object.c?r1=1.266.2.32&r2=1.266.2.33&diff_format=u Index: php-src/ext/phar/phar_object.c diff -u php-src/ext/phar/phar_object.c:1.266.2.32 php-src/ext/phar/phar_object.c:1.266.2.33 --- php-src/ext/phar/phar_object.c:1.266.2.32 Tue Jun 24 01:11:27 2008 +++ php-src/ext/phar/phar_object.c Mon Jul 7 01:11:07 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: phar_object.c,v 1.266.2.32 2008/06/24 01:11:27 cellog Exp $ */ +/* $Id: phar_object.c,v 1.266.2.33 2008/07/07 01:11:07 sfox Exp $ */ #include "phar_internal.h" #include "func_interceptors.h" @@ -3868,9 +3868,10 @@ PHP_METHOD(Phar, extractTo) { char *error = NULL; + php_stream *fp; php_stream_statbuf ssb; phar_entry_info *entry; - char *pathto, *filename; + char *pathto, *filename, *actual; int pathto_len, filename_len; int ret, i; int nelems; @@ -3882,6 +3883,15 @@ return; } + fp = php_stream_open_wrapper(phar_obj->arc.archive->fname, "rb", IGNORE_URL|STREAM_MUST_SEEK, &actual); + efree(actual); + if (!fp) { + zend_throw_exception_ex(spl_ce_InvalidArgumentException, 0 TSRMLS_CC, + "Invalid argument, %s cannot be found", phar_obj->arc.archive->fname); + return; + } + php_stream_close(fp); + if (pathto_len < 1) { zend_throw_exception_ex(spl_ce_InvalidArgumentException, 0 TSRMLS_CC, "Invalid argument, extraction path must be non-zero length");
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php